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

Disassembly:
sub esp, 0xd0
mov eax, dword [esp + 0xe0]
shr dword [esp + 0xdc], 1
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0xe0]
mov edx, esi
mov dword [esp + 0xcc], 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 + 0xd8], eax
mov eax, dword [esi + 0x44]
cmovle edx, edi
cmovle edi, esi
mov esi, ebx
mov ebp, edi
mov dword [esp + 0x20], ebp
cmp dword [edx + 4], eax
mov eax, dword [edi + 4]
cmovle ebx, edx
cmovg esi, edx
mov dword [esp + 0x6c], esi
mov dword [esp + 0x94], ebx
cmp eax, dword [ebx + 4]
jle 0x4315a6
mov ebp, ebx
mov dword [esp + 0x20], ebx
mov ebx, edi
mov dword [esp + 0x94], edi
mov edi, dword [ebp + 4]
mov edx, dword [esi + 4]
mov dword [esp + 0x44], edi
lea ecx, [edi + 0xffff]
lea eax, [edx + 0xffff]
sar ecx, 0x10
sar eax, 0x10
mov dword [esp + 0x28], ecx
mov dword [esp + 0xa0], eax
cmp ecx, eax
je 0x4328a3
mov ebx, dword [ebx + 4]
sub edx, edi
lea eax, [ebx + 0xffff]
sar eax, 0x10
mov dword [esp + 0x64], 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 + 0x6c]
mov esi, edx
push esi
push edi
mov dword [esp + 0x1c], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
mov ebp, edx
push esi
push edi
mov dword [esp + 0xe4], ebp
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x2c], ecx
mov eax, dword [eax + 8]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
push esi
mov dword [esp + 0xd0], edx
push edi
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x78], ecx
mov eax, dword [eax + 0xc]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
push esi
mov dword [esp + 0xcc], edx
push edi
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x68], ecx
mov eax, dword [eax + 0x10]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
push esi
mov dword [esp + 0xc8], edx
push edi
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x74]
mov dword [esp + 0xac], ecx
mov eax, dword [eax + 0x14]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
mov dword [esp + 0xc0], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x6c]
push esi
push edi
mov dword [esp + 0x48], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x20]
push esi
mov dword [esp + 0xc0], edx
push edi
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x74]
mov dword [esp + 0x44], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov esi, dword [esp + 0x44]
sub ebx, esi
mov dword [esp + 0xb8], edx
mov eax, ebx
cdq
mov ecx, eax
mov ebx, edx
push ebx
mov eax, ebp
mov dword [esp + 0x34], ecx
cdq
push ecx
mov edi, edx
mov dword [esp + 0x34], ebx
push edi
push eax
mov dword [esp + 0x2c], eax
call fcn.0059bca0
mov ebx, dword [esp + 0x94]
mov ecx, eax
mov ebp, dword [esp + 0x14]
shrd ecx, edx, 0x10
mov eax, dword [ebx]
add ecx, ebp
mov dword [esp + 0x44], ecx
mov dword [esp + 0x90], eax
cmp eax, ecx
je 0x4328a3
mov eax, dword [esp + 0x28]
shl eax, 0x10
sub eax, esi
cdq
mov ecx, edx
mov dword [esp + 0x18], eax
push ecx
push eax
push edi
push dword [esp + 0x28]
mov dword [esp + 0x44], ecx
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x1c]
add eax, ebp
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd4]
cdq
mov esi, edx
mov edi, eax
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x1c]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0xd0]
cdq
mov ebp, edx
mov dword [esp + 0x28], eax
push ebp
push eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x1c]
add eax, dword [esp + 0x78]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0xcc]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x78], eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x1c]
add eax, dword [esp + 0x68]
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xc8]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x8c], ecx
mov dword [esp + 0x88], eax
call fcn.0059bca0
push dword [esp + 0x34]
shrd eax, edx, 0x10
push dword [esp + 0x1c]
add eax, dword [esp + 0xac]
mov dword [esp + 0x5c], eax
mov eax, dword [esp + 0xc4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x94], ecx
mov dword [esp + 0x90], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x40]
mov dword [esp + 0x5c], eax
push dword [esp + 0x34]
mov eax, dword [esp + 0xbc]
push dword [esp + 0x1c]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x3c]
mov dword [esp + 0x58], eax
mov eax, dword [ebx]
sub eax, dword [esp + 0x44]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x2c]
mov dword [esp + 0x14], eax
push dword [esp + 0x34]
mov dword [esp + 0x24], edx
push esi
push edi
call fcn.0059bca0
push dword [esp + 0x1c]
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 + 0x2c]
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 + 0x2c]
mov dword [esp + 0x9c], edx
push dword [esp + 0x34]
push ebp
push dword [esp + 0x2c]
call fcn.0059bca0
mov ebp, dword [esp + 0x1c]
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 + 0x78]
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 + 0x2c]
mov dword [esp + 0xa0], edx
push dword [esp + 0x34]
push dword [esp + 0x70]
push dword [esp + 0x80]
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 + 0x68]
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 + 0x2c]
mov dword [esp + 0x6c], edx
push dword [esp + 0x34]
push dword [esp + 0x80]
push dword [esp + 0x88]
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 + 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 + 0x2c]
mov dword [esp + 0x64], edx
push dword [esp + 0x34]
push dword [esp + 0x88]
push dword [esp + 0x90]
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 + 0x48]
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 + 0x2c]
mov dword [esp + 0x24], edx
push dword [esp + 0x34]
push dword [esp + 0x90]
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 + 0x44]
sub ebx, ecx
cdq
sbb edi, esi
sub ebx, eax
sbb edi, edx
push edi
push ebx
call fcn.0059bca0
mov ecx, dword [esp + 0x28]
mov ebx, edx
imul ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xe8]
mov dword [esp + 0x70], ebx
lea eax, [eax + ecx*2]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
je 0x4321ae
push dword [esp + 0x2c]
mov ebp, dword [esp + 0x94]
mov eax, ebp
push dword [esp + 0x34]
sub eax, dword [esp + 0x1c]
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 + 0x34]
mov eax, edx
push dword [esp + 0x1c]
mov dword [esp + 0xac], eax
cdq
push edx
push eax
call fcn.0059bca0
mov esi, eax
shrd esi, edx, 0x10
add esi, dword [esp + 0x14]
cmp dword [esp + 0x44], ebp
mov ebp, dword [esp + 0x38]
jge 0x431e67
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x4321b2
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 + 0x84], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x78], edx
cdq
mov dword [esp + 0xac], eax
mov eax, ebx
mov dword [esp + 0xa8], edx
cdq
mov dword [esp + 0xb4], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0xb0], edx
lea edx, [ebp + 0xffff]
mov dword [esp + 0x24], eax
mov dword [esp + 0x40], edx
mov ebx, edx
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x1c], 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 + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
add eax, dword [esp + 0x58]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x88]
shrd eax, edx, 0x10
push dword [esp + 0x88]
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 + 0x80]
add eax, dword [esp + 0x60]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb0]
shrd eax, edx, 0x10
push dword [esp + 0xb8]
add eax, dword [esp + 0x64]
mov dword [esp + 0x40], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0xc0]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x3c], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x24]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add ecx, dword [esp + 0x58]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x3c], ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x28], eax
test ebp, ebp
jle 0x431dd9
mov eax, dword [esp + 0x2c]
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd0]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x431cda
mov eax, dword [esp + 0xd8]
mov ebx, dword [eax + ecx*4]
jmp 0x431cdc
xor ebx, ebx
mov eax, dword [esp + 0x14]
mov ecx, ebx
shr eax, 0x10
and ecx, 0xff00
imul esi, eax, 0xff
mov eax, dword [esp + 0x30]
shr eax, 0x10
movzx edx, bl
and ebx, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x18]
shr eax, 0x10
imul ebx, eax
mov eax, dword [esp + 0x34]
shr eax, 0x10
and edx, 0xff00
imul eax, ecx
shr esi, 8
or edx, ebx
mov ebx, dword [esp + 0x28]
shr edx, 8
mov edi, edx
movzx ecx, dl
and eax, 0xff0000
imul ecx, esi
bswap eax
imul eax, esi
and edi, 0xff0000
imul edi, esi
movzx esi, word [ebx]
mov edx, esi
shr ecx, 0xb
and edx, 0x7e0
and ecx, 0x1f
shr eax, 0xd
and eax, 0x7e0
shr edi, 0x10
add edx, eax
and edi, 0xf800
mov eax, esi
shr edx, 5
and eax, 0x1f
and esi, 0xf800
add eax, ecx
add esi, edi
mov ecx, dword [esp + 0x3c]
shr eax, 5
or edx, eax
shr esi, 5
mov eax, dword [esp + 0x98]
or edx, esi
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x2c]
add eax, dword [esp + 0x20]
mov word [ebx], dx
add ebx, 2
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x70]
add ecx, ebx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x3c], ecx
test ebp, ebp
jg 0x431cb4
jmp 0x431ddd
mov ebx, dword [esp + 0x70]
mov ecx, dword [esp + 0xec]
mov eax, dword [esp + 0xa4]
add dword [esp + 0x24], eax
mov ebp, dword [esp + 0x38]
mov edx, dword [esp + 0x40]
lea eax, [ecx + ecx]
add dword [esp + 0x10], eax
mov eax, dword [esp + 0xcc]
add dword [esp + 0x48], eax
mov eax, dword [esp + 0xc8]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0xc4]
add dword [esp + 0x50], eax
mov eax, dword [esp + 0xc0]
add dword [esp + 0x54], eax
mov eax, dword [esp + 0xbc]
add dword [esp + 0x5c], eax
add ebp, dword [esp + 0xdc]
add edx, dword [esp + 0xdc]
mov eax, dword [esp + 0xb8]
add dword [esp + 0x58], eax
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], edx
test ecx, ecx
jg 0x431bb1
jmp 0x4321b2
jle 0x4321b2
mov ecx, dword [esp + 0x1c]
test ecx, ecx
jle 0x4321b2
mov eax, dword [esp + 0x98]
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
lea eax, [ebp + 0xffff]
mov dword [esp + 0x2c], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], eax
nop word [eax + eax]
mov ebx, eax
dec ecx
and ebx, 0xffff0000
mov dword [esp + 0x1c], ecx
mov eax, ebx
sub eax, ebp
cdq
mov esi, edx
mov edi, eax
push esi
push edi
push dword [esp + 0xbc]
push dword [esp + 0xbc]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0xb4]
add eax, dword [esp + 0x58]
mov dword [esp + 0x34], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
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 + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
call fcn.0059bca0
mov ebp, dword [esp + 0x2c]
mov ecx, eax
shrd ecx, edx, 0x10
mov edx, dword [esp + 0x10]
mov eax, ebx
add ecx, dword [esp + 0x58]
sub ebp, ebx
sar eax, 0x10
sar ebp, 0x10
mov dword [esp + 0x3c], ecx
lea eax, [edx + eax*2]
mov dword [esp + 0x28], eax
test ebp, ebp
jle 0x432128
mov eax, dword [esp + 0x30]
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd0]
shr eax, 0x10
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x432029
mov eax, dword [esp + 0xd8]
mov ebx, dword [eax + ecx*4]
jmp 0x43202b
xor ebx, ebx
mov eax, dword [esp + 0x24]
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
mov eax, dword [esp + 0x18]
shr eax, 0x10
and edx, 0xff00
imul eax, ecx
shr esi, 8
or edx, ebx
mov ebx, dword [esp + 0x28]
shr edx, 8
mov edi, edx
movzx ecx, dl
and eax, 0xff0000
imul ecx, esi
bswap eax
imul eax, esi
and edi, 0xff0000
imul edi, esi
movzx esi, word [ebx]
mov edx, esi
shr ecx, 0xb
and edx, 0x7e0
and ecx, 0x1f
shr eax, 0xd
and eax, 0x7e0
shr edi, 0x10
add edx, eax
and edi, 0xf800
mov eax, esi
shr edx, 5
and eax, 0x1f
and esi, 0xf800
add eax, ecx
add esi, edi
mov ecx, dword [esp + 0x3c]
shr eax, 5
or edx, eax
shr esi, 5
mov eax, dword [esp + 0x98]
or edx, esi
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x18], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0x30]
add eax, dword [esp + 0x20]
mov word [ebx], dx
add ebx, 2
mov dword [esp + 0x28], ebx
mov ebx, dword [esp + 0x70]
add ecx, ebx
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], ecx
test ebp, ebp
jg 0x432003
jmp 0x43212c
mov ebx, dword [esp + 0x70]
mov edx, dword [esp + 0xec]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0xdc]
add ebp, eax
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x40]
lea ecx, [edx + edx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xb8]
add dword [esp + 0x58], ecx
add eax, dword [esp + 0xa4]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], eax
test ecx, ecx
jg 0x431f00
jmp 0x4321b2
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x64]
sub dword [esp + 0xa0], eax
je 0x4328a3
mov eax, dword [esp + 0x94]
mov edi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x6c]
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 + 0x6c]
mov eax, dword [eax]
sub eax, dword [esp + 0x28]
cdq
push edx
push eax
push ecx
push esi
call fcn.0059bca0
mov eax, dword [esp + 0x64]
mov ecx, edx
shl eax, 0x10
sub eax, edi
mov dword [esp + 0xa4], ecx
imul ecx
mov esi, eax
mov eax, dword [esp + 0x28]
shrd esi, edx, 0x10
add esi, eax
cmp dword [esp + 0x44], eax
jge 0x432577
mov ecx, dword [esp + 0xa0]
test ecx, ecx
jle 0x4328a3
mov eax, dword [esp + 0x98]
add esi, 0xffff
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], edx
mov dword [esp + 0x18], esi
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 + 0xbc]
push dword [esp + 0xbc]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0xb4]
add eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
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 + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
call fcn.0059bca0
mov esi, eax
mov ecx, ebx
mov eax, dword [esp + 0x58]
shrd esi, edx, 0x10
mov edx, dword [esp + 0x10]
sar ecx, 0x10
add esi, eax
mov dword [esp + 0x40], esi
lea ecx, [edx + ecx*2]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x18]
mov ebp, ecx
sub ebp, ebx
sar ebp, 0x10
test ebp, ebp
jle 0x4324f3
mov eax, dword [esp + 0x1c]
mov ecx, esi
shr eax, 0x10
shr ecx, 0x10
dec ebp
imul ecx, dword [esp + 0xd0]
add ecx, eax
cmp ecx, dword [esp + 0xd4]
jae 0x4323e9
mov eax, dword [esp + 0xd8]
mov edx, dword [eax + ecx*4]
jmp 0x4323eb
xor edx, edx
mov eax, dword [esp + 0x44]
mov ecx, edx
mov edi, dword [esp + 0x24]
and ecx, 0xff00
shr eax, 0x10
imul ebx, eax, 0xff
mov eax, dword [esp + 0x14]
shr eax, 0x10
mov dword [esp + 0x28], edx
mov esi, dword [esp + 0x28]
movzx edx, dl
and esi, 0xff0000
imul edx, eax
mov eax, dword [esp + 0x64]
shr eax, 0x10
imul esi, eax
shr edi, 0x10
imul edi, ecx
and edx, 0xff00
shr ebx, 8
or edx, esi
shr edx, 8
mov eax, edx
movzx esi, dl
and eax, 0xff0000
imul esi, ebx
imul eax, ebx
and edi, 0xff0000
bswap edi
imul edi, ebx
mov ebx, dword [esp + 0x3c]
shr esi, 0xb
shr eax, 0x10
and esi, 0x1f
and eax, 0xf800
movzx edx, word [ebx]
mov ecx, edx
shr edi, 0xd
and ecx, 0xf800
and edi, 0x7e0
add ecx, eax
mov eax, edx
and eax, 0x7e0
shr ecx, 5
add eax, edi
and edx, 0x1f
shr eax, 5
add edx, esi
mov esi, dword [esp + 0x40]
or ecx, eax
mov eax, dword [esp + 0x98]
add dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x1c]
add eax, dword [esp + 0x20]
add esi, dword [esp + 0x70]
shr edx, 5
or ecx, edx
mov dword [esp + 0x1c], eax
mov word [ebx], cx
add ebx, 2
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x40], esi
test ebp, ebp
jg 0x4323c1
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x18]
add ecx, dword [esp + 0xa4]
mov edx, dword [esp + 0xec]
mov ebp, dword [esp + 0x38]
add ebp, dword [esp + 0xdc]
add eax, dword [esp + 0xb8]
mov dword [esp + 0x18], ecx
lea ecx, [edx + edx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x58], eax
test ecx, ecx
jg 0x4322b3
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret
jle 0x4328a3
mov ecx, dword [esp + 0xa0]
test ecx, ecx
jle 0x4328a3
mov eax, dword [esp + 0x98]
cdq
mov dword [esp + 0xb0], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0xb4], edx
cdq
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0xac], edx
cdq
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x88], edx
cdq
mov dword [esp + 0x7c], eax
mov eax, ebx
mov dword [esp + 0x80], edx
cdq
mov dword [esp + 0x74], eax
lea eax, [esi + 0xffff]
mov dword [esp + 0x78], edx
mov dword [esp + 0x40], 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 + 0xbc]
push dword [esp + 0xbc]
call fcn.0059bca0
push esi
push edi
push dword [esp + 0xb4]
shrd eax, edx, 0x10
push dword [esp + 0xb4]
add eax, dword [esp + 0x58]
mov dword [esp + 0x54], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x98]
add eax, dword [esp + 0x5c]
mov dword [esp + 0x74], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x90]
shrd eax, edx, 0x10
push dword [esp + 0x90]
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 + 0x88]
add eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
call fcn.0059bca0
push esi
push edi
push dword [esp + 0x80]
shrd eax, edx, 0x10
push dword [esp + 0x80]
add eax, dword [esp + 0x6c]
mov dword [esp + 0x2c], eax
call fcn.0059bca0
shrd eax, edx, 0x10
mov edx, dword [esp + 0x10]
mov ecx, ebx
add eax, dword [esp + 0x58]
sub ebp, ebx
sar ecx, 0x10
add ebp, 0xffff
sar ebp, 0x10
mov dword [esp + 0x3c], eax
lea ecx, [edx + ecx*2]
mov dword [esp + 0x28], ecx
test ebp, ebp
jle 0x432826
mov ecx, dword [esp + 0x1c]
dec ebp
shr eax, 0x10
imul eax, dword [esp + 0xd0]
shr ecx, 0x10
add eax, ecx
cmp eax, dword [esp + 0xd4]
jae 0x43272f
mov ecx, dword [esp + 0xd8]
mov ebx, dword [ecx + eax*4]
jmp 0x432731
xor ebx, ebx
mov eax, dword [esp + 0x44]
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 + 0x64]
shr eax, 0x10
imul ebx, eax
mov eax, dword [esp + 0x24]
shr eax, 0x10
and edx, 0xff00
imul eax, ecx
shr esi, 8
or edx, ebx
mov ebx, dword [esp + 0x28]
shr edx, 8
mov edi, edx
movzx ecx, dl
and eax, 0xff0000
imul ecx, esi
bswap eax
imul eax, esi
and edi, 0xff0000
imul edi, esi
movzx esi, word [ebx]
mov edx, esi
shr ecx, 0xb
and edx, 0x7e0
and ecx, 0x1f
shr eax, 0xd
and eax, 0x7e0
shr edi, 0x10
add edx, eax
and edi, 0xf800
mov eax, esi
shr edx, 5
and eax, 0x1f
and esi, 0xf800
add eax, ecx
add esi, edi
shr eax, 5
or edx, eax
shr esi, 5
mov eax, dword [esp + 0x98]
or edx, esi
add dword [esp + 0x44], eax
mov eax, dword [esp + 0x9c]
add dword [esp + 0x64], eax
mov eax, dword [esp + 0x68]
add dword [esp + 0x24], eax
mov eax, dword [esp + 0x60]
add dword [esp + 0x14], eax
mov eax, dword [esp + 0x20]
add dword [esp + 0x1c], eax
mov eax, dword [esp + 0x3c]
add eax, dword [esp + 0x70]
mov word [ebx], dx
add ebx, 2
mov dword [esp + 0x28], ebx
mov dword [esp + 0x3c], eax
test ebp, ebp
jg 0x432705
mov edx, dword [esp + 0xec]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x40]
add ebp, dword [esp + 0xdc]
add eax, dword [esp + 0xa4]
lea ecx, [edx + edx]
add dword [esp + 0x10], ecx
mov ecx, dword [esp + 0xcc]
add dword [esp + 0x48], ecx
mov ecx, dword [esp + 0xc8]
add dword [esp + 0x4c], ecx
mov ecx, dword [esp + 0xc4]
add dword [esp + 0x50], ecx
mov ecx, dword [esp + 0xc0]
add dword [esp + 0x54], ecx
mov ecx, dword [esp + 0xbc]
add dword [esp + 0x5c], ecx
mov ecx, dword [esp + 0xb8]
add dword [esp + 0x58], ecx
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0x38], ebp
mov dword [esp + 0x40], eax
test ecx, ecx
jg 0x432603
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xd0
ret