В аддоне 6.х.х нас ждет небольшое изменение:
похоже уже нету разбивки на тип пакетов.
Код:
char __thiscall NetClient::ProcessMessage(void *this, int a2, int a3, int buffer, int a5)
{
int v5; // esi@1
void *v6; // edi@1
char result; // al@1
++dword_10B5C24;
v5 = buffer;
v6 = this;
CDataStore::GetInt32(buffer, (int)&buffer);
result = sub_623A4A(v6, a2, a3, buffer, v5);
if ( !result )
result = (*(int (__thiscall **)(_DWORD))(*(_DWORD *)v5 + 24))(v5);
return result;
}
Код:
char __thiscall sub_623A4A(void *this, int a2, int a3, int a4, int a5)
{
int *v5; // eax@1
int *v6; // edi@1
int v7; // esi@1
int i; // eax@1
int v9; // ebx@2
void *v11; // [sp+Ch] [bp-4h]@1
v11 = this;
v5 = sub_6239BC();
v6 = v5;
v7 = *v5;
for ( i = *v5 + 4 * v5[1]; ; i = *v6 + 4 * v6[1] )
{
if ( v7 == i )
return 0;
v9 = *(_DWORD *)v7;
if ( (unsigned __int8)(*(int (__cdecl **)(int))(*(_DWORD *)v7 + 4))(a4) )
break;
v7 += 4;
}
(*(void (__cdecl **)(void *, _DWORD, int, int, int, int))(v9 + 20))(v11, 0, a2, a3, a4, a5);
return 1;
}