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

Disassembly:
sub esp, 0xd4
mov eax, dword [esp + 0xe4]
shr dword [esp + 0xe0], 2
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0xe4]
mov edx, esi
mov dword [esp + 0xd4], ecx
mov ecx, dword [eax + 0x14]
mov eax, dword [eax]
mov dword [esp + 0xd0], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 4]
cmp ecx, dword [esi + 0x24]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0xe0], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
mov dword [esp + 0x1c], ebp
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x70], esi
mov dword [esp + 0x94], ebx
cmp eax, dword [ebx + 4]
jle 0x457f97
mov ebp, ebx
mov dword [esp + 0x1c], ebx
mov ebx, edi
mov dword [esp + 0x94], edi
mov edi, dword [ebp + 4]
mov edx, dword [esi + 4]
mov dword [esp + 0x40], edi
lea ecx, [edi + 0xffff]
lea eax, [edx + 0xffff]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x2c], ecx
mov dword [esp + 0xa0], eax
cmp ecx, eax
je 0x459355
mov ebx, dword [ebx + 4]
sub edx, edi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x68], eax
mov eax, edx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ecx, dword [ebp]
mov edi, eax
mov eax, dword [esp + 0x70]
mov esi, edx
push esi
push edi
mov dword [esp + 0x20], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
mov ebp, edx
push esi
push edi
mov dword [esp + 0xe4], ebp
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x28], ecx
mov eax, dword [eax + 8]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
push esi
mov dword [esp + 0xcc], edx
push edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 0xc]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
push esi
mov dword [esp + 0xd4], edx
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x30], ecx
mov eax, dword [eax + 0x10]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
push esi
mov dword [esp + 0xc4], edx
push edi
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x64], ecx
mov eax, dword [eax + 0x14]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
mov dword [esp + 0xc4], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x70]
push esi
push edi
mov dword [esp + 0xac], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x1c]
push esi
mov dword [esp + 0xd0], edx
push edi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x78]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov esi, dword [esp + 0x40]
sub ebx, esi
mov dword [esp + 0xbc], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
push ebx
mov eax, ebp
mov dword [esp + 0x38], ecx
cdq
push ecx
mov edi, edx
mov dword [esp + 0x38], ebx
push edi
push eax
mov dword [esp + 0x70], eax
call fcn.0059bca0
mov ebx, dword [esp + 0x94]
mov ecx, eax
mov ebp, dword [esp + 0x18]
shrd ecx, edx, 0x10
mov eax, dword [ebx]
add ecx, ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0x90], eax
cmp eax, ecx
je 0x459355
mov eax, dword [esp + 0x2c]
shl eax, 0x10
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x14], eax
push ecx
push eax
push edi
push dword [esp + 0x6c]
mov dword [esp + 0x48], ecx
call fcn.0059bca0
push dword [esp + 0x38]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, ebp
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xd0]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x38]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x28]
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0xd8]
cdq
mov ebp, edx
mov dword [esp + 0x24], eax
push ebp
push eax
call fcn.0059bca0
push dword [esp + 0x38]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xc8]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x7c], eax
call fcn.0059bca0
push dword [esp + 0x38]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x30]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xcc]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x90], ecx
mov dword [esp + 0x94], eax
call fcn.0059bca0
push dword [esp + 0x38]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x64]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xd4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x88], ecx
mov dword [esp + 0x8c], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0xa4]
mov dword [esp + 0x58], eax
push dword [esp + 0x38]
mov eax, dword [esp + 0xc0]
push dword [esp + 0x18]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x84], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x64]
mov dword [esp + 0x54], eax
mov eax, dword [ebx]
sub eax, dword [esp + 0x40]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x30]
mov dword [esp + 0x14], eax
push dword [esp + 0x38]
mov dword [esp + 0x68], edx
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x60]
mov ecx, eax
mov esi, edx
mov eax, dword [ebx + 8]
push dword [esp + 0x14]
cdq
shrd ecx, esi, 0x10
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x28]
sar esi, 0x10
sub ebx, ecx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x30]
mov dword [esp + 0x9c], edx
push dword [esp + 0x38]
push ebp
push dword [esp + 0x28]
call fcn.0059bca0
mov ebp, dword [esp + 0x60]
mov ecx, eax
mov eax, dword [esp + 0x94]
mov esi, edx
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0xc]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x2c]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x30]
mov dword [esp + 0xa0], edx
push dword [esp + 0x38]
push dword [esp + 0x74]
push dword [esp + 0x94]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x10]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x30]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x30]
mov dword [esp + 0x70], edx
push dword [esp + 0x38]
push dword [esp + 0x8c]
push dword [esp + 0x8c]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x14]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0x64]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x30]
mov dword [esp + 0x60], edx
push dword [esp + 0x38]
push dword [esp + 0x84]
push dword [esp + 0x84]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x94]
shrd ecx, esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x18]
cdq
mov ebx, eax
sar esi, 0x10
mov eax, dword [esp + 0xac]
sub ebx, ecx
mov edi, edx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x30]
mov dword [esp + 0x20], edx
push dword [esp + 0x38]
push dword [esp + 0x7c]
push dword [esp + 0x98]
call fcn.0059bca0
mov ecx, eax
mov esi, edx
shrd ecx, esi, 0x10
mov eax, dword [esp + 0x94]
sar esi, 0x10
push ebp
push dword [esp + 0x14]
mov eax, dword [eax + 0x1c]
cdq
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x6c]
sub ebx, ecx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x2c]
mov ebx, edx
imul ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0xec]
mov dword [esp + 0x60], ebx
lea eax, [eax + ecx*4]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x68]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x28], eax
je 0x458bfc
push dword [esp + 0x30]
mov ebp, dword [esp + 0x94]
mov eax, ebp
push dword [esp + 0x38]
sub eax, dword [esp + 0x20]
cdq
push 0x10000
push 0
mov edi, eax
mov esi, edx
call fcn.0059bbf0
push edx
push eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x38]
mov eax, edx
push dword [esp + 0x18]
mov dword [esp + 0xac], eax
cdq
push edx
push eax
call fcn.0059bca0
mov esi, eax
shrd esi, edx, 0x10
add esi, dword [esp + 0x18]
cmp dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x3c]
jge 0x458884
mov ecx, dword [esp + 0x28]
test ecx, ecx
jle 0x458c00
mov eax, dword [esp + 0x98]
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x74], edx
cdq
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x7c], edx
cdq
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x84], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, ebx
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0xb8], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0xb4], edx
lea edx, [ebp + 0xffff]
mov dword [esp + 0x20], eax
mov dword [esp + 0x64], edx
nop
mov ebx, edx
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x28], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0x98]
push dword [esp + 0x98]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x7c]
shrd eax, edx, 0x10
push dword [esp + 0x84]
add eax, dword [esp + 0x54]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x84]
shrd eax, edx, 0x10
push dword [esp + 0x8c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x8c]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x48], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xc4]
add eax, dword [esp + 0x68]
mov dword [esp + 0x40], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x20]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add ecx, dword [esp + 0x54]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x2c], ecx
lea edi, [edx + eax*4]
mov dword [esp + 0x24], edi
test ebp, ebp
jle 0x4587f2
mov eax, dword [esp + 0x30]
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd8]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x4586c6
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + ecx*4]
jmp 0x4586c8
xor ebx, ebx
mov eax, dword [esp + 0x18]
mov ecx, ebx
shr eax, 0x10
and ecx, 0xff00
imul esi, eax, 0xff
mov eax, dword [esp + 0x34]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x14]
shr eax, 0x10
imul ebx, eax
shr esi, 8
and edx, 0xff00
or edx, ebx
mov ebx, dword [esp + 0x38]
shr edx, 8
shr ebx, 0x10
imul ebx, ecx
mov ecx, dword [edi]
mov edi, 0xff
mov dword [esp + 0xa8], edx
and edx, 0xff0000
mov eax, dword [esp + 0xa8]
movzx eax, al
imul eax, esi
and ebx, 0xff0000
imul edx, esi
bswap ebx
imul ebx, esi
shr eax, 8
movzx esi, al
mov eax, ecx
and eax, 0xff0000
shr edx, 8
add eax, edx
shr ebx, 8
shr eax, 0x10
and ebx, 0xff00
cmp eax, edi
mov edx, 0xff
cmovbe edi, eax
mov eax, ecx
and eax, 0xff00
add eax, ebx
mov ebx, dword [esp + 0x60]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, esi
mov ecx, 0xff
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0x98]
add dword [esp + 0x18], eax
or edi, 0xffffff00
mov eax, dword [esp + 0x9c]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x1c]
shl edi, 8
or edi, edx
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x24]
shl edi, 8
or edi, ecx
mov ecx, dword [esp + 0x2c]
add ecx, ebx
mov dword [edx], edi
add edx, 4
mov dword [esp + 0x24], edx
mov edi, edx
mov dword [esp + 0x2c], ecx
test ebp, ebp
jg 0x4586a0
jmp 0x4587f6
mov ebx, dword [esp + 0x60]
mov ecx, dword [esp + 0xf0]
mov eax, dword [esp + 0xa4]
add dword [esp + 0x20], eax
mov ebp, dword [esp + 0x3c]
mov edx, dword [esp + 0x64]
lea eax, [ecx*4]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x44], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0xc0]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x58], eax
add ebp, dword [esp + 0xdc]
add edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xbc]
add dword [esp + 0x54], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], edx
test ecx, ecx
jg 0x4585a0
jmp 0x458c00
jle 0x458c00
mov ecx, dword [esp + 0x28]
test ecx, ecx
jle 0x458c00
mov eax, dword [esp + 0x98]
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa8], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x84], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0x30], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x80], edx
mov dword [esp + 0x64], eax
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x28], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xb0]
push dword [esp + 0xc4]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x54]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x60]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x68]
mov dword [esp + 0x48], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x30]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add ecx, dword [esp + 0x54]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x2c], ecx
lea edi, [edx + eax*4]
mov dword [esp + 0x34], edi
test ebp, ebp
jle 0x458b72
mov eax, dword [esp + 0x38]
nop word [eax + eax]
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd8]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x458a46
mov eax, dword [esp + 0xe0]
mov ebx, dword [eax + ecx*4]
jmp 0x458a48
xor ebx, ebx
mov eax, dword [esp + 0x20]
mov ecx, ebx
shr eax, 0x10
and ecx, 0xff00
imul esi, eax, 0xff
mov eax, dword [esp + 0x14]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x24]
shr eax, 0x10
imul ebx, eax
shr esi, 8
and edx, 0xff00
or edx, ebx
mov ebx, dword [esp + 0x18]
shr edx, 8
shr ebx, 0x10
imul ebx, ecx
mov ecx, dword [edi]
mov edi, 0xff
mov dword [esp + 0x88], edx
and edx, 0xff0000
mov eax, dword [esp + 0x88]
movzx eax, al
imul eax, esi
and ebx, 0xff0000
imul edx, esi
bswap ebx
imul ebx, esi
shr eax, 8
movzx esi, al
mov eax, ecx
and eax, 0xff0000
shr edx, 8
add eax, edx
shr ebx, 8
shr eax, 0x10
and ebx, 0xff00
cmp eax, edi
mov edx, 0xff
cmovbe edi, eax
mov eax, ecx
and eax, 0xff00
add eax, ebx
mov ebx, dword [esp + 0x60]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, esi
mov ecx, 0xff
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0x98]
add dword [esp + 0x20], eax
or edi, 0xffffff00
mov eax, dword [esp + 0x9c]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x38]
add eax, dword [esp + 0x1c]
shl edi, 8
or edi, edx
mov dword [esp + 0x38], eax
mov edx, dword [esp + 0x34]
shl edi, 8
or edi, ecx
mov ecx, dword [esp + 0x2c]
add ecx, ebx
mov dword [edx], edi
add edx, 4
mov dword [esp + 0x34], edx
mov edi, edx
mov dword [esp + 0x2c], ecx
test ebp, ebp
jg 0x458a20
jmp 0x458b76
mov ebx, dword [esp + 0x60]
mov edx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xdc]
add ebp, eax
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x64]
lea ecx, [edx*4]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x54], ecx
add eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0x64], eax
test ecx, ecx
jg 0x458917
jmp 0x458c00
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0x68]
sub dword [esp + 0xa0], eax
je 0x459355
mov eax, dword [esp + 0x94]
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x70]
mov eax, dword [eax + 4]
sub eax, edi
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov esi, eax
mov ecx, edx
mov eax, dword [esp + 0x70]
mov eax, dword [eax]
sub eax, dword [esp + 0x2c]
cdq
push edx
push eax
push ecx
push esi
call fcn.0059bca0
mov eax, dword [esp + 0x68]
mov ecx, edx
shl eax, 0x10
sub eax, edi
mov dword [esp + 0x64], ecx
imul ecx
mov esi, eax
mov eax, dword [esp + 0x2c]
shrd esi, edx, 0x10
add esi, eax
cmp dword [esp + 0x40], eax
jge 0x458ff2
mov ecx, dword [esp + 0xa0]
test ecx, ecx
jle 0x459355
mov eax, dword [esp + 0x98]
add esi, 0xffff
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa8], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], edx
mov dword [esp + 0x14], esi
nop
lea ebx, [ebp + 0xffff]
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0xa0], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xb0]
push dword [esp + 0xc4]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x54]
mov dword [esp + 0x78], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x60]
mov dword [esp + 0x28], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x68]
mov dword [esp + 0x38], eax
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
add esi, dword [esp + 0x54]
sar ecx, 0x10
mov dword [esp + 0x2c], esi
lea eax, [edx + ecx*4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x14]
mov ebp, eax
sub ebp, ebx
sar ebp, 0x10
test ebp, ebp
jle 0x458f6d
mov eax, dword [esp + 0x28]
nop dword [eax]
mov ecx, esi
shr eax, 0x10
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd8]
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x458e38
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + ecx*4]
jmp 0x458e3a
xor ecx, ecx
mov eax, dword [esp + 0x68]
mov esi, ecx
shr eax, 0x10
and esi, 0xff0000
imul eax, eax, 0xff
mov edx, ecx
mov ebx, dword [esp + 0x24]
and edx, 0xff00
movzx ecx, cl
shr ebx, 0x10
imul ebx, edx
mov edx, 0xff
shr eax, 8
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x20]
shr eax, 0x10
imul esi, eax
and ebx, 0xff0000
mov eax, dword [esp + 0x18]
shr eax, 0x10
imul ecx, eax
mov eax, dword [esp + 0x88]
and esi, 0xff0000ff
bswap ebx
imul ebx, eax
and ecx, 0xff00
or esi, ecx
mov ecx, dword [esp + 0x40]
shr esi, 8
mov edi, esi
and edi, 0xff0000
shr ebx, 8
imul edi, eax
and ebx, 0xff00
mov ecx, dword [ecx]
imul eax, esi
shr edi, 8
shr eax, 8
movzx esi, al
mov eax, ecx
and eax, 0xff0000
add eax, edi
mov edi, 0xff
shr eax, 0x10
cmp eax, edi
cmovbe edi, eax
mov eax, ecx
and eax, 0xff00
add eax, ebx
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, esi
mov ecx, 0xff
mov esi, dword [esp + 0x2c]
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0x98]
add dword [esp + 0x68], eax
or edi, 0xffffff00
mov eax, dword [esp + 0x9c]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x28]
add eax, dword [esp + 0x1c]
add esi, dword [esp + 0x60]
shl edi, 8
or edi, edx
mov dword [esp + 0x28], eax
mov edx, dword [esp + 0x40]
shl edi, 8
or edi, ecx
mov dword [esp + 0x2c], esi
mov dword [edx], edi
add edx, 4
mov dword [esp + 0x40], edx
test ebp, ebp
jg 0x458e10
mov eax, dword [esp + 0x14]
add eax, dword [esp + 0x64]
mov ecx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x3c]
add ebp, dword [esp + 0xdc]
mov dword [esp + 0x14], eax
lea eax, [ecx*4]
mov dword [esp + 0x3c], ebp
add dword [esp + 0x10], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x44], eax
mov eax, dword [esp + 0xd0]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0xc0]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x58], eax
mov eax, dword [esp + 0xbc]
add dword [esp + 0x54], eax
mov ecx, dword [esp + 0xa0]
test ecx, ecx
jg 0x458d00
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret
jle 0x459355
mov ecx, dword [esp + 0xa0]
test ecx, ecx
jle 0x459355
mov eax, dword [esp + 0x98]
cdq
mov dword [esp + 0xb8], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xa8], edx
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0x90], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x8c], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0x84], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x80], edx
mov dword [esp + 0xa4], eax
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0xa0], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xb0]
push dword [esp + 0xc4]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xbc]
shrd eax, edx, 0x10
push dword [esp + 0xbc]
add eax, dword [esp + 0x54]
mov dword [esp + 0x50], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x58]
mov dword [esp + 0x78], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x30], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x88]
add eax, dword [esp + 0x60]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x68]
mov dword [esp + 0x28], eax
call fcn.0059bca0
shrd eax, edx, 0x10
mov edx, dword [esp + 0x10]
mov ecx, ebx
add eax, dword [esp + 0x54]
sub ebp, ebx
sar ecx, 0x10
add ebp, 0xffff
sar ebp, 0x10
mov dword [esp + 0x2c], eax
lea edi, [edx + ecx*4]
mov dword [esp + 0x28], edi
test ebp, ebp
jle 0x4592d1
mov ecx, dword [esp + 0x18]
dec ebp
shr eax, 0x10
imul eax, dword [esp + 0xd8]
shr ecx, 0x10
add eax, ecx
cmp eax, dword [esp + 0xd4]
jae 0x4591ad
mov ecx, dword [esp + 0xe0]
mov ebx, dword [ecx + eax*4]
jmp 0x4591af
xor ebx, ebx
mov eax, dword [esp + 0x40]
mov ecx, ebx
shr eax, 0x10
and ecx, 0xff00
imul esi, eax, 0xff
mov eax, dword [esp + 0x24]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x68]
shr eax, 0x10
imul ebx, eax
shr esi, 8
and edx, 0xff00
or edx, ebx
mov ebx, dword [esp + 0x20]
shr edx, 8
shr ebx, 0x10
imul ebx, ecx
mov ecx, dword [edi]
mov edi, 0xff
mov dword [esp + 0x88], edx
and edx, 0xff0000
mov eax, dword [esp + 0x88]
movzx eax, al
imul eax, esi
and ebx, 0xff0000
imul edx, esi
bswap ebx
imul ebx, esi
shr eax, 8
movzx esi, al
mov eax, ecx
and eax, 0xff0000
shr edx, 8
add eax, edx
shr ebx, 8
shr eax, 0x10
and ebx, 0xff00
cmp eax, edi
mov edx, 0xff
cmovbe edi, eax
mov eax, ecx
and eax, 0xff00
add eax, ebx
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, esi
mov ecx, 0xff
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0x98]
add dword [esp + 0x40], eax
or edi, 0xffffff00
mov eax, dword [esp + 0x9c]
add dword [esp + 0x68], eax
mov eax, dword [esp + 0x6c]
add dword [esp + 0x20], eax
mov eax, dword [esp + 0x5c]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x1c]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x60]
shl edi, 8
or edi, edx
mov dword [esp + 0x2c], eax
mov edx, dword [esp + 0x28]
shl edi, 8
or edi, ecx
mov dword [edx], edi
add edx, 4
mov dword [esp + 0x28], edx
mov edi, edx
test ebp, ebp
jg 0x459183
mov edx, dword [esp + 0xf0]
mov ebp, dword [esp + 0x3c]
mov eax, dword [esp + 0xa4]
add ebp, dword [esp + 0xdc]
add eax, dword [esp + 0x64]
lea ecx, [edx*4]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x44], ecx
mov ecx, dword [esp + 0xd0]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x3c], ebp
mov dword [esp + 0xa4], eax
test ecx, ecx
jg 0x459081
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd4
ret