Sub at 0x78D225
Code:
char __thiscall NetClient::ProcessMessage(int this, int a2, CDataStore_BitPack *p_Packet, int a4)
{
int v5; // ebx@1
char result; // al@2
unsigned int v8; // eax@11
int l_ArrOffset; // ecx@12
unsigned int l_Opcode; // [sp+Ch] [bp-4h]@1 MAPDST
++sProcessedMessage;
CDataStore::GetInt32(p_Packet, &l_Opcode);
v5 = l_Opcode & 0x244;
if ( (l_Opcode & 0x244) == 4 )
{
result = JAM::ClientDispatch(this, 0, a2, l_Opcode, p_Packet);
}
else if ( (l_Opcode & 0x276) == 0x50 )
{
result = Jam::ClientGuild(this, 0, a2, l_Opcode, p_Packet);
}
else if ( (l_Opcode & 0x1240) == 0x200 )
{
result = JAM::ClientMove(this, 0, a2, l_Opcode, p_Packet);
}
else if ( (l_Opcode & 0x1244) == 0x244 )
{
result = JAM::ClientQuest(this, 0, a2, l_Opcode, p_Packet);
}
else if ( (l_Opcode & 0x252) == 0x40 )
{
result = JAM::ClientSpell(this, 0, a2, l_Opcode, p_Packet);
}
else // Old School Legacy Opcodes
{
(*(*this + 68))(this, l_Opcode);
v8 = l_Opcode & 3 | ((l_Opcode & 0x38 | ((l_Opcode & 0x180 | (l_Opcode >> 1) & 0x7E00) >> 1)) >> 1);
if ( v5 || (l_ArrOffset = *(this + 4 * v8 + 0x550)) == 0 )
result = (p_Packet->DataStore[1].VTable)();// First CDataStore::NullSub
else
result = ((l_ArrOffset - ((l_Opcode | (l_Opcode << 16)) ^ 0x62A3A31D)))(
*(this + 4 * v8 + 0x2550),
l_Opcode,
a2,
p_Packet);
}
return result;
}
Your packet structure is
Code:
int __thiscall sub_6B3865(struct_v3_1 *this, CDataStore_BitPack *p_Packet, int a3)
{
int result; // eax@1
int l_ReadBuffer; // [sp+4h] [bp-4h]@1
l_ReadBuffer = 0;
CDataStore::GetInt32(p_Packet, &l_ReadBuffer);
this->UnkDword = l_ReadBuffer;
l_ReadBuffer = 0;
result = CDataStore::GetFloat(p_Packet, &l_ReadBuffer);
this->UnkSingle = l_ReadBuffer;
return result;
}
0x0097 = SMSG_TIME_ADJUSTMENT ?
in your raw dump the value the float is 1.045064 and 9 for the uint32