rendered paste body.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