Code:
char __thiscall CInitMonster__DropItem(void *this, int a2, int a3, int a4, int a5, int a6)
{
__int64 v6; // qax@15
__int64 v7; // qax@24
__int64 v8; // qax@29
int v9; // eax@40
unsigned __int8 v10; // al@49
int v11; // eax@49
int v12; // eax@50
int v14; // [sp+18h] [bp-40h]@12
void *v15; // [sp+1Ch] [bp-3Ch]@1
char v16; // [sp+20h] [bp-38h]@49
char v17; // [sp+24h] [bp-34h]@52
int v18; // [sp+28h] [bp-30h]@50
int v19; // [sp+2Ch] [bp-2Ch]@50
int v20; // [sp+30h] [bp-28h]@50
char v21; // [sp+34h] [bp-24h]@48
int v22; // [sp+38h] [bp-20h]@36
int v23; // [sp+3Ch] [bp-1Ch]@16
int i; // [sp+40h] [bp-18h]@8
int v25; // [sp+44h] [bp-14h]@1
int v26; // [sp+48h] [bp-10h]@1
int v27; // [sp+4Ch] [bp-Ch]@1
int v28; // [sp+50h] [bp-8h]@1
int v29; // [sp+54h] [bp-4h]@1
v15 = this;
v26 = 0;
v29 = 0;
v27 = 0;
v28 = 0;
v25 = 0;
if ( a3 )
{
v29 = CParty__FindParty(a4);
if ( v29 )
v26 = CParty__GetRandomPlayer(v29);
}
else
{
v26 = CPlayer__FindPlayer_(a4);
}
if ( v26 )
{
for ( i = 0; i < *((_DWORD *)v15 + 29); ++i )
{
v27 = 0;
if ( dword_4E1178 & 1 || dword_4E1174 & 0x100 )
v14 = 2 * *((_DWORD *)v15 + i + 24);
else
v14 = *((_DWORD *)v15 + i + 24);
v28 = v14;
if ( *((_DWORD *)v15 + 16) == 4 )
{
if ( v29 )
{
v28 += CParty__GetLuckySize(0);
}
else
{
LODWORD(v8) = Unknowns__sub_409720(33554432, 0);
if ( v8 )
++v28;
}
}
else
{
LODWORD(v6) = Unknowns__sub_409720(201326592, 0);
if ( v6 )
{
v23 = Unknowns__sub_406E10(1, 10000);
if ( v23 <= 481 )
{
if ( v23 <= 81 )
{
if ( v23 <= 21 )
{
if ( v23 <= 1 )
{
LODWORD(v7) = Unknowns__sub_409720(134217728, 0);
if ( v7 )
v27 = 4;
}
else
{
v27 = 3;
}
}
else
{
v27 = 2;
}
}
else
{
v27 = 1;
}
}
}
}
v25 = v27;
CInitMonster__DropItemEx(a2, v28, *((_DWORD *)v15 + i + 19), a3, a4, &v27, 0);
if ( a6 )
{
if ( Unknowns__sub_406E10(1, 100) > 50 )
CInitMonster__DropItemEx(a2, v28, *((_DWORD *)v15 + i + 19), a3, a4, &v27, a6);
}
if ( v27 < 0 )
{
if ( v29 )
{
v22 = CIOObject__WriteExclusive(68, "bb");
CParty__Broadcast(v22, 0);
}
else
{
CChar__Write(v26, 68, "bb");
}
}
}
ObjectRelease((void *)v26, v26 + 352);
}
v9 = (unsigned __int8)Unknowns__sub_445B60((char *)v15 + 272);
if ( !(_BYTE)v9 )
{
v26 = 0;
if ( v29 )
{
v9 = CParty__GetRandomPlayer(v29);
v26 = v9;
}
else
{
a4 = a5;
v9 = CPlayer__FindPlayer_(a5);
v26 = v9;
}
if ( v26 )
{
if ( CSMap__IsValidTile(v26 + 332, 131072) )
{
Unknowns__sub_430C20(&v21);
while ( 1 )
{
v11 = Unknowns__sub_445B40(&v16);
v10 = Unknowns__sub_47D070(v11);
if ( !v10 )
break;
v12 = Unknowns__sub_420010(&v21, v10);
v18 = *(_DWORD *)v12;
v19 = *(_DWORD *)(v12 + 4);
v20 = *(_DWORD *)(v12 + 8);
if ( CPlayer__CheckQuestFlag(v18) )
{
v27 = 0;
CInitMonster__DropItemEx(a2, v20, v19, a3, a4, &v27, 0);
}
Unknowns__sub_446060(&v17, 0);
}
}
LOBYTE(v9) = ObjectRelease((void *)v26, v26 + 352);
}
}
if ( v29 )
LOBYTE(v9) = CIOObject__Release(v29);
return v9;
}