давно не смотрел в то что делается в клиенте, но это же просто пипец какой-то, это что они там такого курят?
Код:
char __thiscall sub_724F6A(int this, int a2, int a3)
{
int v3; // esi@1
unsigned int v4; // eax@1
int v5; // eax@1
unsigned int v6; // edi@7
int v8; // [sp+Ch] [bp-10h]@1
__int16 v9; // [sp+10h] [bp-Ch]@1
int v10; // [sp+14h] [bp-8h]@1
char v11; // [sp+1Bh] [bp-1h]@2
v3 = this;
v8 = a2;
v9 = 2048;
*(_BYTE *)(this + 17) = CDataStore__ReadBit((int)&v8);
LOBYTE(v10) = 0;
v4 = CDataStore__Read21Bits(&v8, v10);
sub_71F448((void *)(v3 + 24), v4);
*(_BYTE *)(v3 + 19) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 22) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 16) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 20) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 18) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 21) = CDataStore__ReadBit((int)&v8);
LOBYTE(v5) = CDataStore__ReadBit((int)&v8);
*(_BYTE *)(v3 + 23) = v5;
if ( *(_BYTE *)(v3 + 17) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 17) ^= v11;
}
if ( *(_BYTE *)(v3 + 18) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 18) ^= v11;
}
if ( *(_BYTE *)(v3 + 16) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 16) ^= v11;
}
v6 = 0;
if ( *(_DWORD *)(v3 + 24) > 0u )
{
do
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
*(_BYTE *)(*(_DWORD *)(v3 + 28) + 8 * v6 + 4) = v11;
v10 = 0;
CDataStore__GetInt32(a2, (int)&v10);
v5 = *(_DWORD *)(v3 + 28);
*(_DWORD *)(v5 + 8 * v6++) = v10;
}
while ( v6 < *(_DWORD *)(v3 + 24) );
}
if ( *(_BYTE *)(v3 + 23) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 23) ^= v11;
}
if ( *(_BYTE *)(v3 + 20) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 20) ^= v11;
}
if ( *(_BYTE *)(v3 + 21) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 21) ^= v11;
}
if ( *(_BYTE *)(v3 + 22) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 22) ^= v11;
}
if ( *(_BYTE *)(v3 + 19) )
{
v11 = 0;
CDataStore__GetInt8(a2, (int)&v11);
LOBYTE(v5) = v11;
*(_BYTE *)(v3 + 19) ^= v11;
}
return v5;
}