.text:005A72C0 sub_5A72C0 proc near ; CODE XREF: sub_6FF2D0+4A4p .text:005A72C0 .text:005A72C0 dataStore = CDataStore ptr -24h .text:005A72C0 var_4 = dword ptr -4 .text:005A72C0 arg_0 = dword ptr 8 .text:005A72C0 value = byte ptr 0Ch .text:005A72C0 arg_8 = dword ptr 10h .text:005A72C0 arg_C = dword ptr 14h .text:005A72C0 arg_10 = dword ptr 18h .text:005A72C0 .text:005A72C0 push ebp .text:005A72C1 mov ebp, esp .text:005A72C3 sub esp, 24h .text:005A72C6 mov eax, dword_DF8ED8 .text:005A72CB mov [ebp+dataStore.field_18], eax .text:005A72CE push ebx .text:005A72CF mov ebx, dword ptr [ebp+value] .text:005A72D2 mov eax, 5397829Dh .text:005A72D7 mul ebx .text:005A72D9 push esi .text:005A72DA push edi .text:005A72DB mov edi, ecx .text:005A72DD mov ecx, dword_DF8EDC .text:005A72E3 mov eax, edx .text:005A72E5 shr eax, 5 .text:005A72E8 mov [ebp+dataStore.field_1C], ecx .text:005A72EB mov cl, al .text:005A72ED mov dl, 62h .text:005A72EF imul dl .text:005A72F1 xor esi, esi .text:005A72F3 sub bl, al .text:005A72F5 cmp cl, 6 .text:005A72F8 mov [ebp+dataStore.vTable], offset off_889A74 .text:005A72FF mov [ebp+dataStore.dataSize], esi .text:005A7302 mov [ebp+dataStore.m_base], esi .text:005A7305 mov [ebp+dataStore.m_alloc], esi .text:005A7308 mov [ebp+dataStore.m_size], esi .text:005A730B mov [ebp+dataStore.m_pos], 0FFFFFFFFh .text:005A7312 mov [ebp+value], cl .text:005A7315 mov byte ptr [ebp+var_4], bl .text:005A7318 jnb short loc_5A733B .text:005A731A mov eax, [edi+1198h] .text:005A7320 mov eax, [eax+10h] .text:005A7323 lea edx, ds:0[eax*8] .text:005A732A sub edx, eax .text:005A732C movzx eax, cl .text:005A732F lea ecx, [eax+edx*2] .text:005A7332 cmp dword_DE9E40[ecx*4], esi .text:005A7339 jnz short loc_5A7347 .text:005A733B .text:005A733B loc_5A733B: ; CODE XREF: sub_5A72C0+58j .text:005A733B push 59h .text:005A733D call sub_6CA380 .text:005A7342 jmp loc_5A73D4 .text:005A7347 ; --------------------------------------------------------------------------- .text:005A7347 .text:005A7347 loc_5A7347: ; CODE XREF: sub_5A72C0+79j .text:005A7347 push 3E8h ; int .text:005A734C lea ecx, [ebp+dataStore] ; dataStore .text:005A734F call CDataStore_WriteInt32 .text:005A7354 mov edx, [ebp+dataStore.field_1C] .text:005A7357 mov eax, [ebp+dataStore.field_18] .text:005A735A push edx ; highPart .text:005A735B push eax ; lowPart .text:005A735C lea ecx, [ebp+dataStore] ; dataStore .text:005A735F call CDataStore_WriteInt64Parts .text:005A7364 push esi ; value .text:005A7365 lea ecx, [ebp+dataStore] ; dataStore .text:005A7368 call CDataStore_WriteInt8 .text:005A736D mov ecx, dword ptr [ebp+value] .text:005A7370 push ecx ; value .text:005A7371 lea ecx, [ebp+dataStore] ; dataStore .text:005A7374 call CDataStore_WriteInt8 .text:005A7379 mov edx, [ebp+var_4] .text:005A737C push edx ; value .text:005A737D lea ecx, [ebp+dataStore] ; dataStore .text:005A7380 call CDataStore_WriteInt8 .text:005A7385 mov eax, [ebp+arg_0] .text:005A7388 push eax ; int .text:005A7389 lea ecx, [ebp+dataStore] ; dataStore .text:005A738C call CDataStore_WriteInt32 .text:005A7391 push esi ; value .text:005A7392 lea ecx, [ebp+dataStore] ; dataStore .text:005A7395 call CDataStore_WriteInt8 .text:005A739A mov ecx, [ebp+arg_8] .text:005A739D push ecx ; value .text:005A739E lea ecx, [ebp+dataStore] ; dataStore .text:005A73A1 call CDataStore_WriteInt8 .text:005A73A6 mov edx, [ebp+arg_C] .text:005A73A9 push edx ; value .text:005A73AA lea ecx, [ebp+dataStore] ; dataStore .text:005A73AD call CDataStore_WriteInt8 .text:005A73B2 push 1 ; value .text:005A73B4 lea ecx, [ebp+dataStore] ; dataStore .text:005A73B7 call CDataStore_WriteInt8 .text:005A73BC mov eax, [ebp+arg_10] .text:005A73BF push eax ; value .text:005A73C0 lea ecx, [ebp+dataStore] ; dataStore .text:005A73C3 call CDataStore_WriteInt8 .text:005A73C8 lea ecx, [ebp+dataStore] .text:005A73CB push ecx ; dataStore .text:005A73CC mov [ebp+dataStore.m_pos], esi .text:005A73CF call Services_SendPacket .text:005A73D4 .text:005A73D4 loc_5A73D4: ; CODE XREF: sub_5A72C0+82j .text:005A73D4 add esp, 4 .text:005A73D7 cmp [ebp+dataStore.m_alloc], 0FFFFFFFFh .text:005A73DB mov [ebp+dataStore.vTable], offset off_889A74 .text:005A73E2 jz short loc_5A73F9 .text:005A73E4 lea edx, [ebp+dataStore.m_alloc] .text:005A73E7 push edx .text:005A73E8 lea eax, [ebp+dataStore.m_base] .text:005A73EB push eax .text:005A73EC lea ecx, [ebp+dataStore.dataSize] .text:005A73EF push ecx .text:005A73F0 lea ecx, [ebp+dataStore] .text:005A73F3 call ds:off_889A78 .text:005A73F9 .text:005A73F9 loc_5A73F9: ; CODE XREF: sub_5A72C0+122j .text:005A73F9 pop edi .text:005A73FA pop esi .text:005A73FB pop ebx .text:005A73FC mov esp, ebp .text:005A73FE pop ebp .text:005A73FF retn 14h .text:005A73FF sub_5A72C0 endp