Function at 0x409388
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebx
push esi
add esp, 0xffffffd8
mov dword [esp + 4], ecx
mov dword [esp], edx
mov edx, dword [eax]
mov ecx, dword [esp]
xor edx, dword [ecx + 0xa0]
mov dword [esp + 8], edx
lea edx, [eax + 4]
mov edx, dword [edx]
mov ecx, dword [esp]
xor edx, dword [ecx + 0xa4]
mov dword [esp + 0xc], edx
lea edx, [eax + 8]
mov edx, dword [edx]
mov ecx, dword [esp]
xor edx, dword [ecx + 0xa8]
mov dword [esp + 0x10], edx
add eax, 0xc
mov eax, dword [eax]
mov edx, dword [esp]
xor eax, dword [edx + 0xac]
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 8]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x14]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x90]
mov dword [esp + 0x18], edx
movzx eax, byte [esp + 0xc]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 8]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x94]
mov dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x10]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0xc]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x98]
mov dword [esp + 0x20], edx
movzx eax, byte [esp + 0x14]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x10]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x9c]
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x18]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x80]
mov dword [esp + 8], edx
movzx eax, byte [esp + 0x1c]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x84]
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0x20]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x88]
mov dword [esp + 0x10], edx
movzx eax, byte [esp + 0x24]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x8c]
mov dword [esp + 0x14], edx
movzx eax, byte [esp + 8]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x14]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x70]
mov dword [esp + 0x18], edx
movzx eax, byte [esp + 0xc]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 8]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x74]
mov dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x10]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0xc]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x78]
mov dword [esp + 0x20], edx
movzx eax, byte [esp + 0x14]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x10]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x7c]
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x18]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x60]
mov dword [esp + 8], edx
movzx eax, byte [esp + 0x1c]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x64]
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0x20]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x68]
mov dword [esp + 0x10], edx
movzx eax, byte [esp + 0x24]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x6c]
mov dword [esp + 0x14], edx
movzx eax, byte [esp + 8]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x14]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x50]
mov dword [esp + 0x18], edx
movzx eax, byte [esp + 0xc]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 8]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x54]
mov dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x10]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0xc]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x58]
mov dword [esp + 0x20], edx
movzx eax, byte [esp + 0x14]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x10]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x5c]
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x18]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x40]
mov dword [esp + 8], edx
movzx eax, byte [esp + 0x1c]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x44]
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0x20]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x48]
mov dword [esp + 0x10], edx
movzx eax, byte [esp + 0x24]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x4c]
mov dword [esp + 0x14], edx
movzx eax, byte [esp + 8]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x14]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x30]
mov dword [esp + 0x18], edx
movzx eax, byte [esp + 0xc]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 8]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x34]
mov dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x10]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0xc]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x38]
mov dword [esp + 0x20], edx
movzx eax, byte [esp + 0x14]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x10]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x3c]
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x18]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x20]
mov dword [esp + 8], edx
movzx eax, byte [esp + 0x1c]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x24]
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0x20]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x28]
mov dword [esp + 0x10], edx
movzx eax, byte [esp + 0x24]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x2c]
mov dword [esp + 0x14], edx
movzx eax, byte [esp + 8]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x14]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x10]
mov dword [esp + 0x18], edx
movzx eax, byte [esp + 0xc]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 8]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x10]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x14]
mov dword [esp + 0x1c], edx
movzx eax, byte [esp + 0x10]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0xc]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 0x14]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x18]
mov dword [esp + 0x20], edx
movzx eax, byte [esp + 0x14]
mov edx, dword [eax*4 + 0x4546e8]
mov eax, dword [esp + 0x10]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x4546e8]
mov ecx, dword [esp + 0xc]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x4546e8]
mov ecx, dword [esp + 8]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x4546e8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0x1c]
mov dword [esp + 0x24], edx
movzx eax, byte [esp + 0x18]
mov edx, dword [eax*4 + 0x454ae8]
mov eax, dword [esp + 0x24]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x454ae8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x454ae8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x454ae8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax]
mov dword [esp + 8], edx
movzx eax, byte [esp + 0x1c]
mov edx, dword [eax*4 + 0x454ae8]
mov eax, dword [esp + 0x18]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x454ae8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x454ae8]
mov ecx, dword [esp + 0x20]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x454ae8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 4]
mov dword [esp + 0xc], edx
movzx eax, byte [esp + 0x20]
mov edx, dword [eax*4 + 0x454ae8]
mov eax, dword [esp + 0x1c]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x454ae8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x454ae8]
mov ecx, dword [esp + 0x24]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x454ae8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 8]
mov dword [esp + 0x10], edx
movzx eax, byte [esp + 0x24]
mov edx, dword [eax*4 + 0x454ae8]
mov eax, dword [esp + 0x20]
shr eax, 8
movzx eax, al
mov eax, dword [eax*4 + 0x454ae8]
mov ecx, dword [esp + 0x1c]
shr ecx, 0x10
movzx ecx, cl
mov esi, dword [ecx*4 + 0x454ae8]
mov ecx, dword [esp + 0x18]
shr ecx, 0x18
movzx ecx, cl
mov ecx, dword [ecx*4 + 0x454ae8]
mov ebx, eax
shl ebx, 8
shr eax, 0x18
or ebx, eax
xor edx, ebx
mov eax, esi
shl eax, 0x10
shr esi, 0x10
or eax, esi
xor edx, eax
mov eax, ecx
shl eax, 0x18
shr ecx, 8
or eax, ecx
xor edx, eax
mov eax, dword [esp]
xor edx, dword [eax + 0xc]
mov dword [esp + 0x14], edx
mov eax, dword [esp + 4]
mov edx, dword [esp + 8]
mov dword [eax], edx
mov eax, dword [esp + 4]
add eax, 4
mov edx, dword [esp + 0xc]
mov dword [eax], edx
mov eax, dword [esp + 4]
add eax, 8
mov edx, dword [esp + 0x10]
mov dword [eax], edx
mov eax, dword [esp + 4]
add eax, 0xc
mov edx, dword [esp + 0x14]
mov dword [eax], edx
add esp, 0x28
pop esi
pop ebx
ret