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

Disassembly:
push esi
push edi
push ebx
push ebp
sub esp, 0x8c
xor edi, edi
movzx edx, byte [0x6c5c85]
mov ebx, 8
and edx, 1
mov esi, 1
shl edx, 8
add edx, 0x85
mov dword [0x6c5c84], edx
mov edx, dword [0x81eea8]
test edx, edx
mov eax, dword [0x81eeb0]
cmovle edx, edi
test eax, eax
mov dword [0x6c5c7c], ebx
cmovle eax, edi
mov dword [0x6c5c88], 2
mov dword [0x6c5c80], edi
lea ecx, [edx*8]
mov dword [0x6c5ca0], ecx
lea ecx, [esp]
push ebx
push eax
push edx
push 3
push ecx
mov dword [0x6c5c98], esi
mov dword [0x6c5c90], edx
mov dword [0x6c5ca4], esi
mov dword [0x6c5c9c], eax
mov dword [0x6c5c94], ebx
call fcn.005c12c0
mov edx, dword [0x6c5c84]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5c84], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5c78
push dword [esp + 0x1c]
call fcn.005c0f80
mov ebp, dword [0x81eea8]
test ebp, ebp
movzx edx, byte [0x6c5c55]
mov eax, dword [0x81eeb0]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5c4c], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5c54], edx
lea edx, [esp + 0x24]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5c58], 2
mov dword [0x6c5c50], edi
mov dword [0x6c5c68], esi
mov dword [0x6c5c60], ebp
mov dword [0x6c5c74], esi
mov dword [0x6c5c6c], eax
mov dword [0x6c5c64], ebx
mov dword [0x6c5c70], ecx
call fcn.005c12c0
mov edx, dword [0x6c5c54]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5c54], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5c48
push dword [esp + 0x40]
call fcn.005c0f80
mov ebp, dword [0x81eea8]
test ebp, ebp
movzx edx, byte [0x6c5c25]
mov eax, dword [0x81eeb0]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5c1c], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5c24], edx
lea edx, [esp + 0x48]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5c28], 2
mov dword [0x6c5c20], edi
mov dword [0x6c5c38], esi
mov dword [0x6c5c30], ebp
mov dword [0x6c5c44], esi
mov dword [0x6c5c3c], eax
mov dword [0x6c5c34], ebx
mov dword [0x6c5c40], ecx
call fcn.005c12c0
mov edx, dword [0x6c5c24]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5c24], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5c18
push dword [esp + 0x64]
call fcn.005c0f80
mov ebp, dword [0x81eea8]
test ebp, ebp
movzx edx, byte [0x6c5bf5]
mov eax, dword [0x81eeb0]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5bec], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5bf4], edx
lea edx, [esp + 0x6c]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5bf8], 2
mov dword [0x6c5bf0], edi
mov dword [0x6c5c08], esi
mov dword [0x6c5c00], ebp
mov dword [0x6c5c14], esi
mov dword [0x6c5c0c], eax
mov dword [0x6c5c04], ebx
mov dword [0x6c5c10], ecx
call fcn.005c12c0
add esp, 0x74
mov edx, dword [0x6c5bf4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5bf4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5be8
push dword [esp + 0x14]
call fcn.005c0f80
mov ebp, dword [0x81eea8]
test ebp, ebp
movzx edx, byte [0x6c5bc5]
mov eax, dword [0x81eeb0]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5bbc], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5bc4], edx
lea edx, [esp + 0x1c]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5bc8], 2
mov dword [0x6c5bc0], edi
mov dword [0x6c5bd8], esi
mov dword [0x6c5bd0], ebp
mov dword [0x6c5be4], esi
mov dword [0x6c5bdc], eax
mov dword [0x6c5bd4], ebx
mov dword [0x6c5be0], ecx
call fcn.005c12c0
mov edx, dword [0x6c5bc4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5bc4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5bb8
push dword [esp + 0x38]
call fcn.005c0f80
mov ebp, dword [0x81eea8]
test ebp, ebp
movzx edx, byte [0x6c5b95]
mov eax, dword [0x81eeb0]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5b8c], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5b94], edx
lea edx, [esp + 0x40]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5b98], 2
mov dword [0x6c5b90], edi
mov dword [0x6c5ba8], esi
mov dword [0x6c5ba0], ebp
mov dword [0x6c5bb4], esi
mov dword [0x6c5bac], eax
mov dword [0x6c5ba4], ebx
mov dword [0x6c5bb0], ecx
call fcn.005c12c0
mov edx, dword [0x6c5b94]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5b94], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5b88
push dword [esp + 0x5c]
call fcn.005c0f80
mov edx, dword [0x81eea8]
test edx, edx
movzx eax, byte [0x6c5b6d]
lea ecx, [esp + 0x64]
push ebx
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5b6c], eax
mov dword [0x6c5b64], ebx
mov dword [0x6c5b70], esi
mov dword [0x6c5b68], edi
mov dword [0x6c5b80], esi
mov dword [0x6c5b78], edx
mov dword [0x6c5b7c], ebx
call fcn.005c12c0
mov edx, dword [0x6c5b6c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5b6c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5b60
push dword [esp + 0x7c]
call fcn.005c0f80
mov ebp, dword [0x81eb08]
test ebp, ebp
movzx edx, byte [0x6c5b3d]
mov eax, dword [0x81eb10]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5b34], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5b3c], edx
lea edx, [esp + 0x84]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5b40], 2
mov dword [0x6c5b38], edi
mov dword [0x6c5b50], esi
mov dword [0x6c5b48], ebp
mov dword [0x6c5b5c], esi
mov dword [0x6c5b54], eax
mov dword [0x6c5b4c], ebx
mov dword [0x6c5b58], ecx
call fcn.005c12c0
add esp, 0x7c
mov edx, dword [0x6c5b3c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5b3c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5b30
push dword [esp + 0x24]
call fcn.005c0f80
mov ebp, dword [0x81eb08]
test ebp, ebp
movzx edx, byte [0x6c5b0d]
mov eax, dword [0x81eb10]
cmovle ebp, edi
and edx, 1
test eax, eax
mov dword [0x6c5b04], ebx
cmovle eax, edi
shl edx, 8
lea ecx, [ebp*8]
add edx, 0x85
mov dword [0x6c5b0c], edx
lea edx, [esp + 0x2c]
push ebx
push eax
push ebp
push 3
push edx
mov dword [0x6c5b10], 2
mov dword [0x6c5b08], edi
mov dword [0x6c5b20], esi
mov dword [0x6c5b18], ebp
mov dword [0x6c5b2c], esi
mov dword [0x6c5b24], eax
mov dword [0x6c5b1c], ebx
mov dword [0x6c5b28], ecx
call fcn.005c12c0
mov edx, dword [0x6c5b0c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5b0c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5b00
push dword [esp + 0x48]
call fcn.005c0f80
mov edx, dword [0x81eeb0]
mov ebp, 4
test edx, edx
lea ecx, [esp + 0x50]
push ebp
cmovle edx, edi
movzx eax, byte [0x6c5ae5]
push edx
and eax, 1
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5ae4], eax
mov dword [0x6c5adc], ebp
mov dword [0x6c5ae8], esi
mov dword [0x6c5ae0], edi
mov dword [0x6c5af8], esi
mov dword [0x6c5af0], edx
mov dword [0x6c5af4], ebp
call fcn.005c12c0
mov edx, dword [0x6c5ae4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5ae4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5ad8
push dword [esp + 0x68]
call fcn.005c0f80
mov edx, dword [0x81eeb0]
test edx, edx
movzx eax, byte [0x6c5abd]
lea ecx, [esp + 0x70]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5abc], eax
mov dword [0x6c5ab4], ebp
mov dword [0x6c5ac0], esi
mov dword [0x6c5ab8], edi
mov dword [0x6c5ad0], esi
mov dword [0x6c5ac8], edx
mov dword [0x6c5acc], ebp
call fcn.005c12c0
mov edx, dword [0x6c5abc]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5abc], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5ab0
push dword [esp + 0x88]
call fcn.005c0f80
mov eax, dword [0x81eea8]
test eax, eax
movzx ecx, byte [0x6c5a8d]
cmovle eax, edi
and ecx, 1
mov edx, dword [0x81eeb0]
test edx, edx
mov dword [0x6c5a84], ebp
cmovle edx, edi
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5a8c], ecx
lea ecx, [eax*4]
mov dword [0x6c5aa8], ecx
lea ecx, [esp + 0x90]
push ebp
push edx
push eax
push 3
push ecx
mov dword [0x6c5a90], 2
mov dword [0x6c5a88], edi
mov dword [0x6c5aa0], esi
mov dword [0x6c5a98], eax
mov dword [0x6c5aac], esi
mov dword [0x6c5aa4], edx
mov dword [0x6c5a9c], ebp
call fcn.005c12c0
add esp, 0x78
mov edx, dword [0x6c5a8c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5a8c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5a80
push dword [esp + 0x34]
call fcn.005c0f80
mov edx, dword [0x81eb18]
test edx, edx
movzx ebp, byte [0x6c5a4d]
cmovle edx, edi
mov eax, 3
and ebp, 1
shl ebp, 8
mov ecx, dword [0x81ecc0]
test ecx, ecx
mov dword [0x6c5a44], ebx
cmovle ecx, edi
add ebp, 0x85
mov dword [0x6c5a4c], ebp
lea ebp, [edx*8]
mov dword [0x6c5a68], ebp
mov ebp, edx
shl ebp, 4
mov dword [0x6c5a74], ebp
lea ebp, [esp + 0x3c]
push 0x10
push ecx
push edx
push eax
push ebp
mov dword [0x6c5a50], eax
mov ebp, 4
mov dword [0x6c5a48], edi
mov dword [0x6c5a60], esi
mov dword [0x6c5a58], edx
mov dword [0x6c5a6c], esi
mov dword [0x6c5a64], 2
mov dword [0x6c5a78], esi
mov dword [0x6c5a70], ecx
mov dword [0x6c5a5c], ebx
call fcn.005c12c0
mov edx, dword [0x6c5a4c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5a4c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5a40
push dword [esp + 0x58]
call fcn.005c0f80
mov edx, dword [0x81eb40]
test edx, edx
movzx eax, byte [0x6c5db5]
lea ecx, [esp + 0x60]
push ebx
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5db4], eax
mov dword [0x6c5dac], ebx
mov dword [0x6c5db8], esi
mov dword [0x6c5db0], edi
mov dword [0x6c5dc8], esi
mov dword [0x6c5dc0], edx
mov dword [0x6c5dc4], ebx
call fcn.005c12c0
mov edx, dword [0x6c5db4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5db4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5da8
push dword [esp + 0x78]
call fcn.005c0f80
mov edx, dword [0x81eb48]
test edx, edx
movzx eax, byte [0x6c5e2d]
lea ecx, [esp + 0x80]
push ebx
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5e2c], eax
mov dword [0x6c5e24], ebx
mov dword [0x6c5e30], esi
mov dword [0x6c5e28], edi
mov dword [0x6c5e40], esi
mov dword [0x6c5e38], edx
mov dword [0x6c5e3c], ebx
call fcn.005c12c0
mov edx, dword [0x6c5e2c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5e2c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5e20
push dword [esp + 0x98]
call fcn.005c0f80
mov edx, dword [0x81eb50]
test edx, edx
movzx eax, byte [0x6c5e05]
lea ecx, [esp + 0xa0]
push ebx
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5e04], eax
mov dword [0x6c5dfc], ebx
mov dword [0x6c5e08], esi
mov dword [0x6c5e00], edi
mov dword [0x6c5e18], esi
mov dword [0x6c5e10], edx
mov dword [0x6c5e14], ebx
call fcn.005c12c0
add esp, 0x74
mov edx, dword [0x6c5e04]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5e04], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5df8
push dword [esp + 0x44]
call fcn.005c0f80
mov edx, dword [0x81eb58]
test edx, edx
movzx eax, byte [0x6c5ddd]
lea ecx, [esp + 0x4c]
push ebx
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5ddc], eax
mov dword [0x6c5dd4], ebx
mov dword [0x6c5de0], esi
mov dword [0x6c5dd8], edi
mov dword [0x6c5df0], esi
mov dword [0x6c5de8], edx
mov dword [0x6c5dec], ebx
call fcn.005c12c0
mov edx, dword [0x6c5ddc]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5ddc], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5dd0
push dword [esp + 0x64]
call fcn.005c0f80
mov edx, dword [0x81eb58]
test edx, edx
movzx eax, byte [0x6c54d5]
lea ecx, [esp + 0x6c]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c54d4], eax
mov dword [0x6c54cc], ebp
mov dword [0x6c54d8], esi
mov dword [0x6c54d0], edi
mov dword [0x6c54e8], esi
mov dword [0x6c54e0], edx
mov dword [0x6c54e4], ebp
call fcn.005c12c0
mov edx, dword [0x6c54d4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c54d4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c54c8
push dword [esp + 0x84]
call fcn.005c0f80
mov edx, dword [0x81eb58]
test edx, edx
movzx eax, byte [0x6c54ad]
lea ecx, [esp + 0x8c]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c54ac], eax
mov dword [0x6c54a4], ebp
mov dword [0x6c54b0], esi
mov dword [0x6c54a8], edi
mov dword [0x6c54c0], esi
mov dword [0x6c54b8], edx
mov dword [0x6c54bc], ebp
call fcn.005c12c0
mov edx, dword [0x6c54ac]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c54ac], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c54a0
push dword [esp + 0xa4]
call fcn.005c0f80
movzx edx, byte [0x6c5485]
mov eax, 0xc8
and edx, 1
mov ecx, dword [0x81eb58]
test ecx, ecx
mov dword [0x6c547c], eax
cmovle ecx, edi
shl edx, 8
add edx, 0x85
mov dword [0x6c5484], edx
lea edx, [esp + 0xac]
push eax
push ecx
push 2
push edx
mov dword [0x6c5488], esi
mov dword [0x6c5480], edi
mov dword [0x6c5498], esi
mov dword [0x6c5490], ecx
mov dword [0x6c5494], eax
call fcn.005c12c0
mov edx, dword [0x6c5484]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5484], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5478
push dword [esp + 0xc4]
call fcn.005c0f80
add esp, 0x7c
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5ff5]
cmovle eax, edi
and ecx, 1
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5ff4], ecx
mov edx, dword [0x81eb10]
lea ecx, [eax*8]
mov dword [0x6c6010], ecx
test edx, edx
mov dword [0x6c5fec], ebx
cmovle edx, edi
imul ecx, eax
mov dword [0x6c601c], ecx
lea ecx, [esp + 0x50]
push ebx
push edx
push eax
push eax
push 4
push ecx
mov dword [0x6c5ff8], 3
mov dword [0x6c5ff0], edi
mov dword [0x6c6008], esi
mov dword [0x6c6000], eax
mov dword [0x6c6014], esi
mov dword [0x6c600c], eax
mov dword [0x6c6020], esi
mov dword [0x6c6018], edx
mov dword [0x6c6004], ebx
call fcn.005c12c0
mov edx, dword [0x6c5ff4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5ff4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5fe8
push dword [esp + 0x70]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5fb5]
cmovle eax, edi
and ecx, 1
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5fb4], ecx
mov edx, dword [0x81eb10]
lea ecx, [eax*8]
mov dword [0x6c5fd0], ecx
test edx, edx
mov dword [0x6c5fac], ebx
cmovle edx, edi
imul ecx, eax
mov dword [0x6c5fdc], ecx
lea ecx, [esp + 0x78]
push ebx
push edx
push eax
push eax
push 4
push ecx
mov dword [0x6c5fb8], 3
mov dword [0x6c5fb0], edi
mov dword [0x6c5fc8], esi
mov dword [0x6c5fc0], eax
mov dword [0x6c5fd4], esi
mov dword [0x6c5fcc], eax
mov dword [0x6c5fe0], esi
mov dword [0x6c5fd8], edx
mov dword [0x6c5fc4], ebx
call fcn.005c12c0
mov edx, dword [0x6c5fb4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5fb4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5fa8
push dword [esp + 0x98]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5f85]
cmovle eax, edi
and ecx, 1
mov edx, dword [0x81eb10]
test edx, edx
mov dword [0x6c5f7c], ebx
cmovle edx, edi
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5f84], ecx
lea ecx, [eax*8]
mov dword [0x6c5fa0], ecx
lea ecx, [esp + 0xa0]
push ebx
push edx
push eax
push 3
push ecx
mov dword [0x6c5f88], 2
mov dword [0x6c5f80], edi
mov dword [0x6c5f98], esi
mov dword [0x6c5f90], eax
mov dword [0x6c5fa4], esi
mov dword [0x6c5f9c], edx
mov dword [0x6c5f94], ebx
call fcn.005c12c0
mov edx, dword [0x6c5f84]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5f84], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5f78
push dword [esp + 0xbc]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5f2d]
cmovle eax, edi
and ecx, 1
mov edx, dword [0x81eb10]
test edx, edx
mov dword [0x6c5f24], ebx
cmovle edx, edi
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5f2c], ecx
lea ecx, [eax*8]
mov dword [0x6c5f48], ecx
lea ecx, [esp + 0xc4]
push ebx
push edx
push eax
push 3
push ecx
mov dword [0x6c5f30], 2
mov dword [0x6c5f28], edi
mov dword [0x6c5f40], esi
mov dword [0x6c5f38], eax
mov dword [0x6c5f4c], esi
mov dword [0x6c5f44], edx
mov dword [0x6c5f3c], ebx
call fcn.005c12c0
add esp, 0x7c
mov edx, dword [0x6c5f2c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5f2c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5f20
push dword [esp + 0x64]
call fcn.005c0f80
mov edx, dword [0x81eb08]
lea ecx, [esp + 0x6c]
add edx, edx
push ebx
cmovs edx, edi
movzx eax, byte [0x6c5f5d]
push edx
and eax, 1
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5f5c], eax
mov dword [0x6c5f54], ebx
mov dword [0x6c5f60], esi
mov dword [0x6c5f58], edi
mov dword [0x6c5f70], esi
mov dword [0x6c5f68], edx
mov dword [0x6c5f6c], ebx
call fcn.005c12c0
mov edx, dword [0x6c5f5c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5f5c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5f50
push dword [esp + 0x84]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5efd]
cmovle eax, edi
and ecx, 1
mov edx, dword [0x81eb10]
test edx, edx
mov dword [0x6c5ef4], ebp
cmovle edx, edi
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5efc], ecx
lea ecx, [eax*4]
mov dword [0x6c5f18], ecx
lea ecx, [esp + 0x8c]
push ebp
push edx
push eax
push 3
push ecx
mov dword [0x6c5f00], 2
mov dword [0x6c5ef8], edi
mov dword [0x6c5f10], esi
mov dword [0x6c5f08], eax
mov dword [0x6c5f1c], esi
mov dword [0x6c5f14], edx
mov dword [0x6c5f0c], ebp
call fcn.005c12c0
mov edx, dword [0x6c5efc]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5efc], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5ef0
push dword [esp + 0xa8]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c5ecd]
cmovle eax, edi
and ecx, 1
mov edx, dword [0x81eb10]
test edx, edx
mov dword [0x6c5ec4], ebp
cmovle edx, edi
shl ecx, 8
add ecx, 0x85
mov dword [0x6c5ecc], ecx
lea ecx, [eax*4]
mov dword [0x6c5ee8], ecx
lea ecx, [esp + 0xb0]
push ebp
push edx
push eax
push 3
push ecx
mov dword [0x6c5ed0], 2
mov dword [0x6c5ec8], edi
mov dword [0x6c5ee0], esi
mov dword [0x6c5ed8], eax
mov dword [0x6c5eec], esi
mov dword [0x6c5ee4], edx
mov dword [0x6c5edc], ebp
call fcn.005c12c0
mov edx, dword [0x6c5ecc]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5ecc], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5ec0
push dword [esp + 0xcc]
call fcn.005c0f80
mov edx, dword [0x81eb10]
test edx, edx
movzx eax, byte [0x6c5ea5]
lea ecx, [esp + 0xd4]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5ea4], eax
mov dword [0x6c5e9c], ebp
mov dword [0x6c5ea8], esi
mov dword [0x6c5ea0], edi
mov dword [0x6c5eb8], esi
mov dword [0x6c5eb0], edx
mov dword [0x6c5eb4], ebp
call fcn.005c12c0
add esp, 0x78
mov edx, dword [0x6c5ea4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5ea4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5e98
push dword [esp + 0x74]
call fcn.005c0f80
mov edx, dword [0x81eeb0]
test edx, edx
movzx eax, byte [0x6c5e7d]
lea ecx, [esp + 0x7c]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5e7c], eax
mov dword [0x6c5e74], ebp
mov dword [0x6c5e80], esi
mov dword [0x6c5e78], edi
mov dword [0x6c5e90], esi
mov dword [0x6c5e88], edx
mov dword [0x6c5e8c], ebp
call fcn.005c12c0
mov edx, dword [0x6c5e7c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5e7c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5e70
push dword [esp + 0x94]
call fcn.005c0f80
mov edx, dword [0x81eb10]
test edx, edx
movzx eax, byte [0x6c5e55]
lea ecx, [esp + 0x9c]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c5e54], eax
mov dword [0x6c5e4c], ebp
mov dword [0x6c5e58], esi
mov dword [0x6c5e50], edi
mov dword [0x6c5e68], esi
mov dword [0x6c5e60], edx
mov dword [0x6c5e64], ebp
call fcn.005c12c0
mov edx, dword [0x6c5e54]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c5e54], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c5e48
push dword [esp + 0xb4]
call fcn.005c0f80
mov eax, dword [0x81eb08]
test eax, eax
movzx ecx, byte [0x6c60c5]
cmovle eax, edi
and ecx, 1
shl ecx, 8
add ecx, 0x85
mov dword [0x6c60c4], ecx
mov edx, dword [0x81eb10]
lea ecx, [eax*8]
mov dword [0x6c60e0], ecx
test edx, edx
mov dword [0x6c60bc], ebx
cmovle edx, edi
imul ecx, eax
mov dword [0x6c60ec], ecx
lea ecx, [esp + 0xbc]
push ebx
push edx
push eax
push eax
push 4
push ecx
mov dword [0x6c60c8], 3
mov dword [0x6c60c0], edi
mov dword [0x6c60d8], esi
mov dword [0x6c60d0], eax
mov dword [0x6c60e4], esi
mov dword [0x6c60dc], eax
mov dword [0x6c60f0], esi
mov dword [0x6c60e8], edx
mov dword [0x6c60d4], ebx
call fcn.005c12c0
mov edx, dword [0x6c60c4]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c60c4], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c60b8
push dword [esp + 0xdc]
call fcn.005c0f80
add esp, 0x68
mov edx, dword [0x81eb08]
test edx, edx
movzx ecx, byte [0x6c6085]
cmovle edx, edi
and ecx, 1
shl ecx, 8
add ecx, 0x85
mov dword [0x6c6084], ecx
mov eax, dword [0x81eb10]
lea ecx, [edx*8]
mov dword [0x6c60a0], ecx
test eax, eax
mov dword [0x6c607c], ebx
cmovle eax, edi
imul ecx, edx
mov dword [0x6c60ac], ecx
lea ecx, [esp + 0x7c]
push ebx
push eax
push edx
push edx
push 4
push ecx
mov dword [0x6c6088], 3
mov dword [0x6c6080], edi
mov dword [0x6c6098], esi
mov dword [0x6c6090], edx
mov dword [0x6c60a4], esi
mov dword [0x6c609c], edx
mov dword [0x6c60b0], esi
mov dword [0x6c60a8], eax
mov dword [0x6c6094], ebx
call fcn.005c12c0
mov edx, dword [0x6c6084]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c6084], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c6078
push dword [esp + 0x9c]
call fcn.005c0f80
mov edx, dword [0x81eb10]
test edx, edx
movzx eax, byte [0x6c605d]
lea ecx, [esp + 0xa4]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c605c], eax
mov dword [0x6c6054], ebp
mov dword [0x6c6060], esi
mov dword [0x6c6058], edi
mov dword [0x6c6070], esi
mov dword [0x6c6068], edx
mov dword [0x6c606c], ebp
call fcn.005c12c0
mov edx, dword [0x6c605c]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c605c], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c6050
push dword [esp + 0xbc]
call fcn.005c0f80
mov edx, dword [0x81eb10]
test edx, edx
movzx eax, byte [0x6c6035]
lea ecx, [esp + 0xc4]
push ebp
cmovle edx, edi
and eax, 1
push edx
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c6034], eax
mov dword [0x6c602c], ebp
mov dword [0x6c6038], esi
mov dword [0x6c6030], edi
mov dword [0x6c6048], esi
mov dword [0x6c6040], edx
mov dword [0x6c6044], ebp
call fcn.005c12c0
mov edx, dword [0x6c6034]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c6034], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c6028
push dword [esp + 0xdc]
call fcn.005c0f80
mov edx, dword [0x81eeb0]
test edx, edx
mov dword [0x6c7ef8], edi
lea ecx, [esp + 0xe4]
push ebp
cmovg edi, edx
movzx eax, byte [0x6c7efd]
push edi
and eax, 1
shl eax, 8
push 2
push ecx
add eax, 0x85
mov dword [0x6c7efc], eax
mov dword [0x6c7ef4], ebp
mov dword [0x6c7f00], esi
mov dword [0x6c7f10], esi
mov dword [0x6c7f08], edi
mov dword [0x6c7f0c], ebp
call fcn.005c12c0
mov edx, dword [0x6c7efc]
and eax, 1
and edx, 0xfffffff
add edx, 0x40000000
mov ecx, edx
mov dword [0x6c7efc], edx
and ecx, 1
shr edx, 8
add ecx, ecx
shl eax, 4
and edx, 1
shl edx, 0x15
or ecx, eax
or ecx, edx
add ecx, 0x40000
push ecx
push 0x6c7ef0
push dword [esp + 0xfc]
call fcn.005c0f80
add esp, 0x104
pop ebp
pop ebx
pop edi
pop esi
ret