int __thiscall CScreenShot::MakeScreenShot(CScreenShot *this, ZRef pReq) { int v2; // edi@0 int v3; // esi@0 CScreenShot *v4; // esi@1 IWzProperty **v5; // eax@1 int v6; // ecx@9 int v7; // ecx@10 int v8; // eax@13 int v9; // [sp+0h] [bp-2Ch]@9 MAPGENREQUEST *v10; // [sp+4h] [bp-28h]@9 unsigned int v11; // [sp+Ch] [bp-20h]@1 int v12; // [sp+10h] [bp-1Ch]@1 int v13; // [sp+14h] [bp-18h]@1 CScreenShot *v14; // [sp+18h] [bp-14h]@1 _com_ptr_t<_com_IIID > result; // [sp+1Ch] [bp-10h]@1 int v16; // [sp+28h] [bp-4h]@1 result.m_pInterface = (IWzProperty *)this; v14 = this; v13 = v3; v12 = v2; v4 = this; v11 = pReq.p->dwField; v16 = 0; v5 = (IWzProperty **)CScreenShot::GetFieldProp(this, &result, v11); _com_ptr_t<_com_IIID>::operator_(&v4->m_pData, *v5); if ( result.m_pInterface ) result.m_pInterface->baseclass_0.baseclass_0.vfptr->Release((IUnknown *)result.m_pInterface); if ( CScreenShot::Step0(v4) && (LogReport("Step0 is done."), CScreenShot::Step1(v4)) && (LogReport("Step1 is done."), CScreenShot::Step2(v4)) && (LogReport("Step2 is done."), CScreenShot::DrawBack(v4)) && (LogReport("Drawback is done."), CScreenShot::Step3(v4)) && (LogReport("Step3 is done."), CScreenShot::DrawLife(v4)) && (LogReport("DrawLife is done."), v9 = v6, v14 = (CScreenShot *)&v9, v10 = pReq.p, ZRef::_AddRef((ZRef *)&v9), CScreenShot::DrawUser(v4, *(ZRef *)&v9)) && (LogReport("DrawUser is done."), v9 = v7, v14 = (CScreenShot *)&v9, v10 = pReq.p, ZRef::_AddRef((ZRef *)&v9), CScreenShot::Step4(v4, *(ZRef *)&v9)) ) { LogReport("Step4 is done."); LogReport("Making Screenshot is done."); v16 = -1; if ( pReq.p ) ZRef::_ReleaseRaw(&pReq, 0); v8 = 1; } else { v16 = -1; if ( pReq.p ) ZRef::_ReleaseRaw(&pReq, 0); v8 = 0; } return v8; }