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

Disassembly:
sub esp, 0xec
mov eax, dword [esp + 0xfc]
shr dword [esp + 0xf8], 2
push ebx
push ebp
mov ecx, dword [eax + 0x10]
push esi
mov esi, dword [esp + 0xfc]
mov edx, esi
mov dword [esp + 0xa4], ecx
mov ecx, dword [eax + 0x18]
mov eax, dword [eax]
mov dword [esp + 0xf4], ecx
lea ebx, [esi + 0x40]
mov ecx, dword [esi + 0x24]
mov ebp, ebx
cmp dword [esi + 4], ecx
mov ecx, dword [esi + 0x44]
push edi
lea edi, [esi + 0x20]
mov dword [esp + 0x3c], eax
cmovle edx, edi
cmovle edi, esi
cmp dword [edx + 4], ecx
mov ecx, edi
mov eax, dword [edi + 4]
cmovle ebx, edx
mov dword [esp + 0x24], ecx
cmovg ebp, edx
mov dword [esp + 0xa4], ebx
mov dword [esp + 0x50], ebp
cmp eax, dword [ebx + 4]
jle 0x461434
mov ecx, ebx
mov dword [esp + 0x24], ebx
mov ebx, edi
mov dword [esp + 0xa4], edi
mov esi, dword [esp + 0x110]
mov eax, dword [ecx + 8]
imul eax, dword [esi]
shr eax, 8
mov dword [ecx + 8], eax
mov eax, dword [esi + 4]
imul eax, dword [ecx + 0xc]
shr eax, 8
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 8]
imul eax, dword [ecx + 0x10]
shr eax, 8
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0xc]
imul eax, dword [ecx + 0x14]
shr eax, 8
mov dword [ecx + 0x14], eax
mov eax, dword [esi]
imul eax, dword [ebx + 8]
shr eax, 8
mov dword [ebx + 8], eax
mov eax, dword [esi + 4]
imul eax, dword [ebx + 0xc]
shr eax, 8
mov dword [ebx + 0xc], eax
mov eax, dword [ebx + 0x10]
imul eax, dword [esi + 8]
shr eax, 8
mov dword [ebx + 0x10], eax
mov eax, dword [ebx + 0x14]
imul eax, dword [esi + 0xc]
shr eax, 8
mov dword [ebx + 0x14], eax
mov eax, dword [esi]
imul eax, dword [ebp + 8]
shr eax, 8
mov dword [ebp + 8], eax
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 4]
imul eax, dword [ebp + 0xc]
shr eax, 8
mov dword [ebp + 0xc], eax
mov dword [esp + 0x28], eax
mov eax, dword [ebp + 0x10]
imul eax, dword [esi + 8]
shr eax, 8
mov dword [ebp + 0x10], eax
mov dword [esp + 0x5c], eax
mov eax, dword [ebp + 0x14]
imul eax, dword [esi + 0xc]
shr eax, 8
mov dword [ebp + 0x14], eax
mov edi, dword [ecx + 4]
mov ecx, dword [ebp + 4]
mov dword [esp + 0x54], eax
mov dword [esp + 0x68], edi
lea edx, [edi + 0xffff]
lea eax, [ecx + 0xffff]
sar edx, 0x10
sar eax, 0x10
mov dword [esp + 0x78], edx
mov dword [esp + 0x9c], eax
cmp edx, eax
je 0x4630e6
mov ebp, dword [ebx + 4]
sub ecx, edi
lea eax, [ebp + 0xffff]
sar eax, 0x10
mov dword [esp + 0x84], eax
mov eax, ecx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x24]
push edi
push ebx
mov ecx, dword [eax]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x18], ecx
mov eax, dword [eax]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push edi
mov dword [esp + 0xec], edx
push ebx
mov ecx, dword [eax + 8]
mov eax, dword [esp + 0x24]
sub eax, ecx
mov dword [esp + 0x3c], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push edi
mov dword [esp + 0xe4], edx
push ebx
mov ecx, dword [eax + 0xc]
mov eax, dword [esp + 0x30]
sub eax, ecx
mov dword [esp + 0x38], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push edi
mov dword [esp + 0xe0], edx
push ebx
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x64]
sub eax, ecx
mov dword [esp + 0x40], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push edi
mov dword [esp + 0xf8], edx
push ebx
mov ecx, dword [eax + 0x14]
mov eax, dword [esp + 0x5c]
sub eax, ecx
mov dword [esp + 0x54], ecx
cdq
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
mov dword [esp + 0xf0], edx
mov ecx, dword [eax + 0x18]
mov eax, dword [esp + 0x50]
mov dword [esp + 0x40], ecx
mov eax, dword [eax + 0x18]
sub eax, ecx
push edi
cdq
push ebx
push edx
push eax
call fcn.0059bca0
mov eax, dword [esp + 0x24]
push edi
mov dword [esp + 0xe8], edx
push ebx
mov ecx, dword [eax + 0x1c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x6c], ecx
mov eax, dword [eax + 0x1c]
sub eax, ecx
cdq
push edx
push eax
call fcn.0059bca0
mov edi, dword [esp + 0x68]
sub ebp, edi
mov dword [esp + 0xec], edx
mov eax, ebp
cdq
mov ecx, eax
mov ebx, edx
mov eax, dword [esp + 0xe8]
cdq
push ebx
mov ebp, eax
mov dword [esp + 0x4c], ecx
mov eax, edx
mov dword [esp + 0x48], ebx
push ecx
push eax
push ebp
mov dword [esp + 0x38], ebp
mov dword [esp + 0x2c], eax
call fcn.0059bca0
mov ebp, dword [esp + 0xa4]
mov ecx, eax
mov ebx, dword [esp + 0x10]
shrd ecx, edx, 0x10
mov eax, dword [ebp]
add ecx, ebx
mov dword [esp + 0x68], ecx
mov dword [esp + 0x54], eax
cmp eax, ecx
je 0x4630e6
mov eax, dword [esp + 0x78]
shl eax, 0x10
sub eax, edi
cdq
mov ecx, edx
mov dword [esp + 0x14], eax
push ecx
push eax
push dword [esp + 0x24]
mov dword [esp + 0x2c], ecx
push dword [esp + 0x34]
call fcn.0059bca0
push dword [esp + 0x20]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, ebx
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xe8]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x20]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x3c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0xe4]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x38], ecx
mov dword [esp + 0x2c], eax
call fcn.0059bca0
push dword [esp + 0x20]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x38]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0xfc]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xb0], ecx
mov dword [esp + 0x6c], eax
call fcn.0059bca0
push dword [esp + 0x20]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0xf8]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0x98], ecx
mov dword [esp + 0x9c], eax
call fcn.0059bca0
push dword [esp + 0x20]
shrd eax, edx, 0x10
push dword [esp + 0x18]
add eax, dword [esp + 0x54]
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0xec]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xa0], ecx
mov dword [esp + 0x68], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x40]
push dword [esp + 0x20]
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0xf0]
push dword [esp + 0x18]
cdq
mov ecx, eax
mov eax, edx
push eax
push ecx
mov dword [esp + 0xa8], ecx
mov dword [esp + 0xa4], eax
call fcn.0059bca0
shrd eax, edx, 0x10
add eax, dword [esp + 0x64]
mov dword [esp + 0x24], eax
mov eax, dword [ebp]
sub eax, dword [esp + 0x68]
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
push dword [esp + 0x44]
mov dword [esp + 0x1c], eax
push dword [esp + 0x4c]
mov dword [esp + 0x34], edx
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
mov eax, dword [ebp + 8]
push dword [esp + 0x1c]
cdq
shrd ecx, edi, 0x10
mov ebp, eax
mov ebx, edx
mov eax, dword [esp + 0x3c]
sar edi, 0x10
sub ebp, ecx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x44]
mov dword [esp + 0xb0], edx
push dword [esp + 0x4c]
push dword [esp + 0x24]
push dword [esp + 0x34]
call fcn.0059bca0
push dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa8]
push dword [esp + 0x1c]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0xc]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x38]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x44]
mov dword [esp + 0xb4], edx
push dword [esp + 0x4c]
push dword [esp + 0x64]
push dword [esp + 0xac]
call fcn.0059bca0
push dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa8]
push dword [esp + 0x1c]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x10]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x40]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x44]
mov dword [esp + 0xb8], edx
push dword [esp + 0x4c]
push dword [esp + 0x94]
push dword [esp + 0x94]
call fcn.0059bca0
push dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa8]
push dword [esp + 0x1c]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x14]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x54]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x44]
mov dword [esp + 0x8c], edx
push dword [esp + 0x4c]
push dword [esp + 0x60]
push dword [esp + 0x9c]
call fcn.0059bca0
push dword [esp + 0x2c]
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa8]
push dword [esp + 0x1c]
shrd ecx, edi, 0x10
mov eax, dword [eax + 0x18]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x48]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
push dword [esp + 0x44]
mov dword [esp + 0x90], edx
push dword [esp + 0x4c]
push dword [esp + 0x9c]
push dword [esp + 0xa4]
call fcn.0059bca0
mov ecx, eax
mov edi, edx
mov eax, dword [esp + 0xa4]
push dword [esp + 0x2c]
shrd ecx, edi, 0x10
push dword [esp + 0x1c]
mov eax, dword [eax + 0x1c]
cdq
mov ebp, eax
sar edi, 0x10
mov eax, dword [esp + 0x6c]
sub ebp, ecx
mov ebx, edx
cdq
sbb ebx, edi
sub ebp, eax
sbb ebx, edx
push ebx
push ebp
call fcn.0059bca0
mov ecx, dword [esp + 0x78]
mov ebp, edx
imul ecx, dword [esp + 0x108]
mov eax, dword [esp + 0x104]
mov dword [esp + 0xa0], ebp
lea eax, [eax + ecx*4]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x84]
sub eax, dword [esp + 0x78]
mov dword [esp + 0x18], eax
je 0x46258e
push dword [esp + 0x44]
mov eax, dword [esp + 0x58]
push dword [esp + 0x4c]
sub eax, dword [esp + 0x18]
cdq
push 0x10000
push 0
mov ebx, eax
mov edi, edx
call fcn.0059bbf0
push edx
push eax
push edi
push ebx
call fcn.0059bca0
push dword [esp + 0x20]
mov eax, edx
push dword [esp + 0x18]
mov dword [esp + 0x24], eax
cdq
push edx
push eax
call fcn.0059bca0
mov edi, eax
mov eax, dword [esp + 0x54]
shrd edi, edx, 0x10
add edi, dword [esp + 0x10]
cmp dword [esp + 0x68], eax
jge 0x462002
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x46258e
mov eax, dword [esp + 0xac]
cdq
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x98], edx
cdq
mov dword [esp + 0x58], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x90], edx
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0xcc], eax
mov eax, ebp
mov dword [esp + 0xc8], edx
cdq
mov dword [esp + 0xd4], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0xd0], edx
lea edx, [ecx + 0xffff]
mov dword [esp + 0x34], eax
mov dword [esp + 0x28], edx
nop dword [eax]
mov ebp, edx
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x18], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xa0]
push dword [esp + 0xa0]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0x98]
shrd eax, edx, 0x10
push dword [esp + 0x64]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x74], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc0]
shrd eax, edx, 0x10
push dword [esp + 0xc8]
add eax, dword [esp + 0x80]
mov dword [esp + 0x50], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc8]
shrd eax, edx, 0x10
push dword [esp + 0xd0]
add eax, dword [esp + 0x84]
mov dword [esp + 0x5c], eax
call fcn.0059bca0
push dword [esp + 0xc8]
shrd eax, edx, 0x10
push dword [esp + 0xd0]
add eax, dword [esp + 0x88]
push edi
push ebx
mov dword [esp + 0x48], eax
call fcn.0059bca0
push dword [esp + 0xd0]
shrd eax, edx, 0x10
push dword [esp + 0xd8]
add eax, dword [esp + 0x84]
push edi
push ebx
mov dword [esp + 0x6c], eax
call fcn.0059bca0
mov edi, eax
mov eax, ebp
shrd edi, edx, 0x10
mov edx, dword [esp + 0x2c]
add edi, dword [esp + 0x24]
sar eax, 0x10
lea eax, [edx + eax*4]
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x34]
mov ecx, eax
sub ecx, ebp
sar ecx, 0x10
test ecx, ecx
jle 0x461f74
mov ebp, dword [esp + 0x3c]
lea eax, [edi - 0x8000]
mov edi, dword [esp + 0x5c]
add edi, 0xffff8000
mov dword [esp + 0x30], eax
mov dword [esp + 0x5c], edi
nop dword [eax]
nop word [eax + eax]
mov edx, dword [esp + 0xa8]
dec ecx
mov dword [esp + 0xd8], ecx
test edi, edi
jle 0x461c78
mov ecx, edi
mov dword [esp + 0x54], edi
sar ecx, 0x10
lea eax, [edx - 1]
xor ebx, ebx
cmp ecx, eax
setl bl
jmp 0x461c80
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x54], eax
mov esi, dword [esp + 0x30]
test esi, esi
jle 0x461cae
mov eax, dword [esp + 0xf8]
mov ecx, esi
dec eax
sar ecx, 0x10
mov dword [esp + 0x14], 0
cmp ecx, eax
mov eax, dword [esp + 0x14]
mov ecx, esi
cmovl eax, edx
mov dword [esp + 0x14], eax
jmp 0x461cb4
xor ecx, ecx
mov dword [esp + 0x14], ecx
mov eax, dword [esp + 0x54]
and edi, 0xfffe
sar eax, 0x10
inc edi
sar ecx, 0x10
imul ecx, edx
mov edx, 0x10000
sub edx, edi
add ecx, eax
mov dword [esp + 0x10], ecx
lea eax, [ecx + ebx]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x14]
add eax, ecx
mov ecx, dword [ebp + eax*4]
add eax, ebx
mov dword [esp + 0x48], ecx
mov ebx, edx
mov ecx, 0x10000
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x14], eax
mov eax, esi
and eax, 0xfffe
inc eax
sub ecx, eax
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x10]
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, edi
shr eax, 0x18
shr ebx, 0x10
imul ebx, eax
mov eax, dword [esp + 0x44]
imul ebp, ecx
mov ecx, dword [esp + 0x20]
shr eax, 0x18
shr ebx, 0x10
mov dword [esp + 0x54], ebx
mov ebx, ecx
imul ebx, edx
mov edx, dword [esp + 0x14]
imul ecx, edi
shr ebp, 0x10
imul ebp, eax
mov eax, dword [esp + 0x48]
shr eax, 0x18
mov edi, dword [esp + 0x10]
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x48]
movzx eax, al
movzx edx, dl
shr ebx, 0x10
imul eax, ebx
shr ecx, 0x10
imul edx, ecx
shr ebp, 0x10
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x44]
movzx eax, al
imul eax, ebp
add edx, eax
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x14]
movzx eax, al
and ecx, 0xff0000
imul eax, dword [esp + 0x54]
imul ecx, dword [esp + 0x20]
add edx, eax
mov eax, dword [esp + 0x48]
and eax, 0xff0000
and edx, 0xff00
imul eax, ebx
add ecx, eax
mov esi, edi
mov eax, dword [esp + 0x44]
and eax, 0xff0000
imul eax, ebp
add ecx, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x110]
and eax, 0xff0000
imul eax, dword [esp + 0x54]
mov edi, dword [esi]
imul edi, dword [esp + 0x64]
add ecx, eax
or edx, ecx
mov ecx, dword [esi + 0xc]
imul ecx, dword [esp + 0x38]
shr edx, 8
movzx eax, dl
and edx, 0xff0000
shr edi, 0x18
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x40]
and ecx, 0xff00
shr eax, 0x18
imul eax, edx
or ecx, eax
shr ecx, 8
mov edx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
and edx, 0xff0000
imul eax, edi
and ecx, 0xff00
imul ecx, dword [esp + 0x20]
imul edx, edi
or edx, eax
mov eax, dword [esp + 0x48]
and eax, 0xff00
shr edx, 8
imul eax, ebx
mov ebx, dword [esp + 0x10]
add ecx, eax
mov eax, dword [esp + 0x44]
and eax, 0xff00
imul eax, ebp
mov ebp, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebp + ebx*4]
and eax, 0xff00
mov ebx, 0xff
imul eax, dword [esp + 0x54]
add ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x4c]
and ecx, 0xff0000
bswap ecx
shr eax, 0x18
imul ecx, eax
and ecx, 0xff0000
bswap ecx
imul ecx, edi
movzx edi, dl
and ecx, 0xff0000
bswap ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x78]
mov ecx, dword [ecx]
mov eax, ecx
and eax, 0xff0000
add eax, edx
mov edx, 0xff
shr eax, 0x10
cmp eax, ebx
cmovbe ebx, eax
mov eax, ecx
and eax, 0xff00
add eax, dword [esp + 0x14]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, edi
mov ecx, 0xff
mov edi, dword [esp + 0x5c]
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0xac]
add dword [esp + 0x64], eax
or ebx, 0xffffff00
mov eax, dword [esp + 0xb0]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0xb4]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0x88]
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x30]
add edi, dword [esp + 0x8c]
add eax, dword [esp + 0xa0]
shl ebx, 8
or ebx, edx
mov dword [esp + 0x5c], edi
mov edx, dword [esp + 0x78]
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0xd8]
mov dword [edx], ebx
add edx, 4
mov dword [esp + 0x78], edx
test ecx, ecx
jg 0x461c50
mov eax, dword [esp + 0x34]
add eax, dword [esp + 0x1c]
mov ebx, dword [esp + 0x108]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x28]
add ecx, dword [esp + 0xe8]
add edx, dword [esp + 0xe8]
mov dword [esp + 0x34], eax
lea eax, [ebx*4]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0xe0]
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0xdc]
add dword [esp + 0x70], eax
mov eax, dword [esp + 0xf4]
add dword [esp + 0x74], eax
mov eax, dword [esp + 0xf0]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0xe4]
add dword [esp + 0x7c], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x24], eax
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x28], edx
test ebx, ebx
jg 0x461b20
jmp 0x462587
jle 0x46258e
mov ebx, dword [esp + 0x18]
test ebx, ebx
jle 0x46258e
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
mov ecx, dword [esp + 0x60]
mov dword [esp + 0xd8], edx
cdq
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xd0], edx
cdq
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc8], edx
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0x98], eax
mov eax, ebp
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x90], eax
lea eax, [ecx + 0xffff]
mov dword [esp + 0x78], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x94], edx
mov dword [esp + 0x54], eax
nop dword [eax + eax]
mov ebp, eax
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x18], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xe0]
push dword [esp + 0xe0]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd8]
shrd eax, edx, 0x10
push dword [esp + 0xd8]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x40], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd0]
shrd eax, edx, 0x10
push dword [esp + 0xd0]
add eax, dword [esp + 0x80]
mov dword [esp + 0x48], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc8]
shrd eax, edx, 0x10
push dword [esp + 0xc8]
add eax, dword [esp + 0x84]
mov dword [esp + 0x5c], eax
call fcn.0059bca0
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x88]
push edi
push ebx
mov dword [esp + 0x50], eax
call fcn.0059bca0
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x84]
push edi
push ebx
mov dword [esp + 0x68], eax
call fcn.0059bca0
mov edi, eax
mov eax, ebp
shrd edi, edx, 0x10
mov edx, dword [esp + 0x2c]
add edi, dword [esp + 0x24]
sar eax, 0x10
lea eax, [edx + eax*4]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x78]
mov ecx, eax
sub ecx, ebp
sar ecx, 0x10
test ecx, ecx
jle 0x4624fe
mov ebp, dword [esp + 0x3c]
lea eax, [edi - 0x8000]
mov edi, dword [esp + 0x58]
add edi, 0xffff8000
mov dword [esp + 0x64], eax
mov dword [esp + 0x5c], edi
nop word [eax + eax]
mov edx, dword [esp + 0xa8]
dec ecx
mov dword [esp + 0x58], ecx
test edi, edi
jle 0x462205
mov ecx, edi
mov dword [esp + 0x28], edi
sar ecx, 0x10
lea eax, [edx - 1]
xor ebx, ebx
cmp ecx, eax
setl bl
jmp 0x46220d
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x28], eax
mov esi, dword [esp + 0x64]
test esi, esi
jle 0x46223b
mov eax, dword [esp + 0xf8]
mov ecx, esi
dec eax
sar ecx, 0x10
mov dword [esp + 0x10], 0
cmp ecx, eax
mov eax, dword [esp + 0x10]
mov ecx, esi
cmovl eax, edx
mov dword [esp + 0x10], eax
jmp 0x462241
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x28]
and edi, 0xfffe
sar eax, 0x10
inc edi
sar ecx, 0x10
imul ecx, edx
mov edx, 0x10000
sub edx, edi
add ecx, eax
mov dword [esp + 0x44], ecx
lea eax, [ecx + ebx]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [ebp + eax*4]
add eax, ebx
mov dword [esp + 0x20], ecx
mov ebx, edx
mov ecx, 0x10000
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x14], eax
mov eax, esi
and eax, 0xfffe
inc eax
sub ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x44]
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, edi
shr eax, 0x18
shr ebx, 0x10
imul ebx, eax
mov eax, dword [esp + 0x48]
imul ebp, ecx
mov ecx, dword [esp + 0x10]
shr eax, 0x18
shr ebx, 0x10
mov dword [esp + 0x28], ebx
mov ebx, ecx
imul ebx, edx
mov edx, dword [esp + 0x14]
imul ecx, edi
shr ebp, 0x10
imul ebp, eax
mov eax, dword [esp + 0x20]
shr eax, 0x18
mov edi, dword [esp + 0x44]
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x20]
movzx eax, al
movzx edx, dl
shr ebx, 0x10
imul eax, ebx
shr ecx, 0x10
imul edx, ecx
shr ebp, 0x10
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x48]
movzx eax, al
imul eax, ebp
add edx, eax
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x14]
movzx eax, al
and ecx, 0xff0000
imul eax, dword [esp + 0x28]
imul ecx, dword [esp + 0x10]
add edx, eax
mov eax, dword [esp + 0x20]
and eax, 0xff0000
and edx, 0xff00
imul eax, ebx
add ecx, eax
mov esi, edi
mov eax, dword [esp + 0x48]
and eax, 0xff0000
imul eax, ebp
add ecx, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x110]
and eax, 0xff0000
imul eax, dword [esp + 0x28]
mov edi, dword [esi]
imul edi, dword [esp + 0x30]
add ecx, eax
or edx, ecx
mov ecx, dword [esi + 0xc]
imul ecx, dword [esp + 0x40]
shr edx, 8
movzx eax, dl
and edx, 0xff0000
shr edi, 0x18
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x38]
and ecx, 0xff00
shr eax, 0x18
imul eax, edx
or ecx, eax
shr ecx, 8
mov edx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x14]
and edx, 0xff0000
imul eax, edi
and ecx, 0xff00
imul ecx, dword [esp + 0x10]
imul edx, edi
or edx, eax
mov eax, dword [esp + 0x20]
and eax, 0xff00
shr edx, 8
imul eax, ebx
mov ebx, dword [esp + 0x44]
add ecx, eax
mov eax, dword [esp + 0x48]
and eax, 0xff00
imul eax, ebp
mov ebp, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebp + ebx*4]
and eax, 0xff00
mov ebx, 0xff
imul eax, dword [esp + 0x28]
add ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x4c]
and ecx, 0xff0000
bswap ecx
shr eax, 0x18
imul ecx, eax
and ecx, 0xff0000
bswap ecx
imul ecx, edi
movzx edi, dl
and ecx, 0xff0000
bswap ecx
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx]
mov eax, ecx
and eax, 0xff0000
add eax, edx
mov edx, 0xff
shr eax, 0x10
cmp eax, ebx
cmovbe ebx, eax
mov eax, ecx
and eax, 0xff00
add eax, dword [esp + 0x14]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, edi
mov ecx, 0xff
mov edi, dword [esp + 0x5c]
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0xac]
add dword [esp + 0x30], eax
or ebx, 0xffffff00
mov eax, dword [esp + 0xb0]
add dword [esp + 0x38], eax
mov eax, dword [esp + 0xb4]
add dword [esp + 0x4c], eax
mov eax, dword [esp + 0x88]
add dword [esp + 0x40], eax
mov eax, dword [esp + 0x64]
add edi, dword [esp + 0x8c]
add eax, dword [esp + 0xa0]
shl ebx, 8
or ebx, edx
mov dword [esp + 0x5c], edi
mov edx, dword [esp + 0x34]
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x64], eax
mov ecx, dword [esp + 0x58]
mov dword [edx], ebx
add edx, 4
mov dword [esp + 0x34], edx
test ecx, ecx
jg 0x4621e0
mov eax, dword [esp + 0x78]
mov ebx, dword [esp + 0x108]
add eax, dword [esp + 0xe8]
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0xe8]
lea edx, [ebx*4]
mov dword [esp + 0x78], eax
add dword [esp + 0x2c], edx
mov edx, dword [esp + 0xe0]
add dword [esp + 0x6c], edx
mov edx, dword [esp + 0xdc]
add dword [esp + 0x70], edx
mov edx, dword [esp + 0xf4]
add dword [esp + 0x74], edx
mov edx, dword [esp + 0xf0]
add dword [esp + 0x80], edx
mov edx, dword [esp + 0xe4]
mov eax, dword [esp + 0x54]
add dword [esp + 0x7c], edx
add eax, dword [esp + 0x1c]
mov edx, dword [esp + 0xec]
add dword [esp + 0x24], edx
mov ebx, dword [esp + 0x18]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x54], eax
test ebx, ebx
jg 0x4620b0
mov ebp, dword [esp + 0xa0]
mov eax, dword [esp + 0x84]
sub dword [esp + 0x9c], eax
je 0x4630e6
mov eax, dword [esp + 0xa4]
mov ebx, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x50]
mov eax, dword [eax + 4]
sub eax, ebx
cdq
push edx
push eax
push 0x10000
push 0
call fcn.0059bbf0
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x50]
mov eax, dword [eax]
sub eax, dword [esp + 0x1c]
cdq
push edx
push eax
push ecx
push edi
call fcn.0059bca0
mov eax, dword [esp + 0x84]
mov ecx, edx
shl eax, 0x10
sub eax, ebx
mov dword [esp + 0x64], ecx
imul ecx
mov edi, eax
mov eax, dword [esp + 0x1c]
shrd edi, edx, 0x10
add edi, eax
cmp dword [esp + 0x68], eax
jge 0x462b8c
mov ebx, dword [esp + 0x9c]
test ebx, ebx
jle 0x4630e6
mov eax, dword [esp + 0xac]
lea ecx, [edi + 0xffff]
cdq
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xd8], edx
cdq
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xd0], edx
cdq
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc8], edx
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0x98], eax
mov eax, ebp
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x60]
mov dword [esp + 0x90], eax
mov dword [esp + 0x94], edx
nop dword [eax + eax]
lea ebp, [ecx + 0xffff]
dec ebx
and ebp, 0xffff0000
mov dword [esp + 0x9c], ebx
mov eax, ebp
sub eax, ecx
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xe0]
push dword [esp + 0xe0]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd8]
shrd eax, edx, 0x10
push dword [esp + 0xd8]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x94], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd0]
shrd eax, edx, 0x10
push dword [esp + 0xd0]
add eax, dword [esp + 0x80]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc8]
shrd eax, edx, 0x10
push dword [esp + 0xc8]
add eax, dword [esp + 0x84]
mov dword [esp + 0x40], eax
call fcn.0059bca0
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x88]
push edi
push ebx
mov dword [esp + 0x48], eax
call fcn.0059bca0
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x84]
push edi
push ebx
mov dword [esp + 0x68], eax
call fcn.0059bca0
mov edi, eax
mov ecx, ebp
shrd edi, edx, 0x10
mov edx, dword [esp + 0x2c]
add edi, dword [esp + 0x24]
sar ecx, 0x10
lea eax, [edx + ecx*4]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x40]
mov ecx, eax
sub ecx, ebp
sar ecx, 0x10
test ecx, ecx
jle 0x462b04
mov ebp, dword [esp + 0x3c]
lea eax, [edi - 0x8000]
mov edi, dword [esp + 0x58]
add edi, 0xffff8000
mov dword [esp + 0x4c], eax
mov dword [esp + 0x28], edi
nop
mov edx, dword [esp + 0xa8]
dec ecx
mov dword [esp + 0x58], ecx
test edi, edi
jle 0x462805
mov ecx, edi
mov dword [esp + 0x1c], edi
sar ecx, 0x10
lea eax, [edx - 1]
xor ebx, ebx
cmp ecx, eax
setl bl
jmp 0x46280d
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x1c], eax
mov esi, dword [esp + 0x4c]
test esi, esi
jle 0x46283b
mov eax, dword [esp + 0xf8]
mov ecx, esi
dec eax
sar ecx, 0x10
mov dword [esp + 0x10], 0
cmp ecx, eax
mov eax, dword [esp + 0x10]
mov ecx, esi
cmovl eax, edx
mov dword [esp + 0x10], eax
jmp 0x462841
xor ecx, ecx
mov dword [esp + 0x10], ecx
mov eax, dword [esp + 0x1c]
and edi, 0xfffe
sar eax, 0x10
inc edi
sar ecx, 0x10
imul ecx, edx
mov edx, 0x10000
sub edx, edi
add ecx, eax
mov dword [esp + 0x20], ecx
lea eax, [ecx + ebx]
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x10]
add eax, ecx
mov ecx, dword [ebp + eax*4]
add eax, ebx
mov dword [esp + 0x18], ecx
mov ebx, edx
mov ecx, 0x10000
mov eax, dword [ebp + eax*4]
mov dword [esp + 0x50], eax
mov eax, esi
and eax, 0xfffe
inc eax
sub ecx, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x20]
imul ebx, ecx
mov eax, dword [ebp + eax*4]
mov ebp, edi
shr eax, 0x18
shr ebx, 0x10
imul ebx, eax
mov eax, dword [esp + 0x14]
imul ebp, ecx
mov ecx, dword [esp + 0x10]
shr eax, 0x18
shr ebx, 0x10
mov dword [esp + 0x1c], ebx
mov ebx, ecx
imul ebx, edx
mov edx, dword [esp + 0x50]
imul ecx, edi
shr ebp, 0x10
imul ebp, eax
mov eax, dword [esp + 0x18]
shr eax, 0x18
mov edi, dword [esp + 0x20]
shr ebx, 0x10
imul ebx, eax
mov eax, edx
shr eax, 0x18
shr ecx, 0x10
imul ecx, eax
mov eax, dword [esp + 0x18]
movzx eax, al
movzx edx, dl
shr ebx, 0x10
imul eax, ebx
shr ecx, 0x10
imul edx, ecx
shr ebp, 0x10
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x3c]
add edx, eax
mov eax, dword [esp + 0x14]
movzx eax, al
imul eax, ebp
add edx, eax
mov eax, dword [ecx + edi*4]
mov ecx, dword [esp + 0x50]
movzx eax, al
and ecx, 0xff0000
imul eax, dword [esp + 0x1c]
imul ecx, dword [esp + 0x10]
add edx, eax
mov eax, dword [esp + 0x18]
and eax, 0xff0000
and edx, 0xff00
imul eax, ebx
add ecx, eax
mov esi, edi
mov eax, dword [esp + 0x14]
and eax, 0xff0000
imul eax, ebp
add ecx, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + esi*4]
mov esi, dword [esp + 0x110]
and eax, 0xff0000
imul eax, dword [esp + 0x1c]
mov edi, dword [esi]
imul edi, dword [esp + 0x84]
add ecx, eax
or edx, ecx
mov ecx, dword [esi + 0xc]
imul ecx, dword [esp + 0x38]
shr edx, 8
movzx eax, dl
and edx, 0xff0000
shr edi, 0x18
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 4]
imul eax, dword [esp + 0x34]
and ecx, 0xff00
shr eax, 0x18
imul eax, edx
or ecx, eax
shr ecx, 8
mov edx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x50]
and edx, 0xff0000
imul eax, edi
and ecx, 0xff00
imul ecx, dword [esp + 0x10]
imul edx, edi
or edx, eax
mov eax, dword [esp + 0x18]
and eax, 0xff00
shr edx, 8
imul eax, ebx
mov ebx, dword [esp + 0x20]
add ecx, eax
mov eax, dword [esp + 0x14]
and eax, 0xff00
imul eax, ebp
mov ebp, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [ebp + ebx*4]
and eax, 0xff00
mov ebx, 0xff
imul eax, dword [esp + 0x1c]
add ecx, eax
mov eax, dword [esi + 8]
imul eax, dword [esp + 0x30]
and ecx, 0xff0000
bswap ecx
shr eax, 0x18
imul ecx, eax
and ecx, 0xff0000
bswap ecx
imul ecx, edi
movzx edi, dl
and ecx, 0xff0000
bswap ecx
mov dword [esp + 0x50], ecx
mov ecx, dword [esp + 0x68]
mov ecx, dword [ecx]
mov eax, ecx
and eax, 0xff0000
add eax, edx
mov edx, 0xff
shr eax, 0x10
cmp eax, ebx
cmovbe ebx, eax
mov eax, ecx
and eax, 0xff00
add eax, dword [esp + 0x50]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
add eax, edi
mov ecx, 0xff
mov edi, dword [esp + 0x28]
cmp eax, ecx
cmovbe ecx, eax
mov eax, dword [esp + 0xac]
add dword [esp + 0x84], eax
or ebx, 0xffffff00
mov eax, dword [esp + 0xb0]
add dword [esp + 0x34], eax
mov eax, dword [esp + 0xb4]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x88]
add dword [esp + 0x38], eax
mov eax, dword [esp + 0x4c]
add edi, dword [esp + 0x8c]
add eax, dword [esp + 0xa0]
shl ebx, 8
or ebx, edx
mov dword [esp + 0x28], edi
mov edx, dword [esp + 0x68]
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x58]
mov dword [edx], ebx
add edx, 4
mov dword [esp + 0x68], edx
test ecx, ecx
jg 0x4627e0
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x64]
mov edx, dword [esp + 0x108]
mov ecx, dword [esp + 0x60]
add ecx, dword [esp + 0xe8]
mov ebx, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
lea eax, [edx*4]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0xe0]
add dword [esp + 0x6c], eax
mov eax, dword [esp + 0xdc]
add dword [esp + 0x70], eax
mov eax, dword [esp + 0xf4]
add dword [esp + 0x74], eax
mov eax, dword [esp + 0xf0]
add dword [esp + 0x80], eax
mov eax, dword [esp + 0xe4]
add dword [esp + 0x7c], eax
mov eax, dword [esp + 0xec]
add dword [esp + 0x24], eax
mov dword [esp + 0x60], ecx
test ebx, ebx
jg 0x4626b0
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xec
ret
jle 0x4630e6
mov ecx, dword [esp + 0x9c]
test ecx, ecx
jle 0x4630e6
mov eax, dword [esp + 0xac]
cdq
mov dword [esp + 0xd4], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0xd8], edx
cdq
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xd0], edx
cdq
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0xc8], edx
cdq
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0xc0], edx
cdq
mov dword [esp + 0x98], eax
mov eax, ebp
mov dword [esp + 0xb8], edx
cdq
mov dword [esp + 0x90], eax
lea eax, [edi + 0xffff]
mov dword [esp + 0x94], edx
mov dword [esp + 0x40], eax
nop word [eax + eax]
mov ebp, eax
dec ecx
and ebp, 0xffff0000
mov dword [esp + 0x9c], ecx
mov eax, ebp
sub eax, dword [esp + 0x60]
cdq
mov edi, edx
mov ebx, eax
push edi
push ebx
push dword [esp + 0xe0]
push dword [esp + 0xe0]
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd8]
shrd eax, edx, 0x10
push dword [esp + 0xd8]
add eax, dword [esp + 0x7c]
mov dword [esp + 0x44], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xd0]
shrd eax, edx, 0x10
push dword [esp + 0xd0]
add eax, dword [esp + 0x80]
mov dword [esp + 0x40], eax
call fcn.0059bca0
push edi
push ebx
push dword [esp + 0xc8]
shrd eax, edx, 0x10
push dword [esp + 0xc8]
add eax, dword [esp + 0x84]
mov dword [esp + 0x6c], eax
call fcn.0059bca0
push dword [esp + 0xb8]
shrd eax, edx, 0x10
push dword [esp + 0x9c]
add eax, dword [esp + 0x88]
push edi
push ebx
mov dword [esp + 0x48], eax
call fcn.0059bca0
push dword [esp + 0x94]
shrd eax, edx, 0x10
push dword [esp + 0x94]
add eax, dword [esp + 0x84]
push edi
push ebx
mov dword [esp + 0x68], eax
call fcn.0059bca0
mov edi, eax
mov ecx, ebp
shrd edi, edx, 0x10
mov edx, dword [esp + 0x2c]
sar ecx, 0x10
add edi, 0xffff8000
lea eax, [edx + ecx*4]
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x60]
sub eax, ebp
add eax, 0xffff
sar eax, 0x10
test eax, eax
jle 0x463069
add edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x58]
add ebp, 0xffff8000
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], ebp
nop dword [eax]
mov edx, dword [esp + 0xa8]
dec eax
mov dword [esp + 0x78], eax
test ebp, ebp
jle 0x462d85
mov ecx, ebp
mov dword [esp + 0x1c], ebp
sar ecx, 0x10
lea eax, [edx - 1]
xor ebx, ebx
cmp ecx, eax
setl bl
jmp 0x462d8d
xor eax, eax
xor ebx, ebx
mov dword [esp + 0x1c], eax
xor esi, esi
test edi, edi
jle 0x462db1
mov eax, dword [esp + 0xf8]
mov ecx, edi
sar ecx, 0x10
dec eax
cmp ecx, eax
cmovl esi, edx
mov dword [esp + 0x58], esi
mov esi, edi
mov ecx, dword [esp + 0x58]
jmp 0x462db3
xor ecx, ecx
mov eax, dword [esp + 0x1c]
sar eax, 0x10
sar esi, 0x10
imul esi, edx
mov edx, dword [esp + 0x3c]
add esi, eax
mov dword [esp + 0x1c], esi
lea eax, [esi + ebx]
mov eax, dword [edx + eax*4]
mov dword [esp + 0x50], eax
lea eax, [esi + ecx]
mov ecx, dword [edx + eax*4]
add eax, ebx
mov dword [esp + 0x10], ecx
mov ebx, 0x10000
mov ecx, ebp
mov ebp, edi
and ecx, 0xfffe
and ebp, 0xfffe
mov edx, dword [edx + eax*4]
inc ecx
mov eax, dword [esp + 0x3c]
sub ebx, ecx
mov dword [esp + 0x18], edx
inc ebp
mov edi, ebx
mov edx, 0x10000
sub edx, ebp
imul ebx, ebp
mov eax, dword [eax + esi*4]
shr eax, 0x18
imul edi, edx
imul edx, ecx
imul ebp, ecx
mov ecx, dword [esp + 0x18]
shr ebx, 0x10
shr edi, 0x10
imul edi, eax
mov eax, dword [esp + 0x50]
shr eax, 0x18
shr edx, 0x10
imul edx, eax
mov eax, dword [esp + 0x10]
shr eax, 0x18
imul ebx, eax
mov eax, ecx
shr eax, 0x18
shr edx, 0x10
mov dword [esp + 0x68], edx
mov edx, ecx
shr ebp, 0x10
and edx, 0xff0000
imul ebp, eax
mov eax, dword [esp + 0x10]
and eax, 0xff0000
shr ebx, 0x10
imul eax, ebx
shr edi, 0x10
shr ebp, 0x10
imul edx, ebp
movzx ecx, cl
imul ecx, ebp
mov dword [esp + 0x28], edi
add edx, eax
mov eax, dword [esp + 0x50]
and eax, 0xff0000
imul eax, dword [esp + 0x68]
add edx, eax
mov eax, dword [esp + 0x3c]
mov eax, dword [eax + esi*4]
and eax, 0xff0000
imul eax, edi
add edx, eax
mov eax, dword [esp + 0x10]
movzx eax, al
and edx, 0xff0000ff
imul eax, ebx
add ecx, eax
mov eax, dword [esp + 0x50]
movzx eax, al
imul eax, dword [esp + 0x68]
add ecx, eax
mov esi, dword [esp + 0x3c]
mov edi, dword [esp + 0x1c]
mov eax, dword [esi + edi*4]
movzx eax, al
imul eax, dword [esp + 0x28]
mov esi, dword [esp + 0x110]
add ecx, eax
mov edi, dword [esi]
and ecx, 0xff00
imul edi, dword [esp + 0x34]
or edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x30]
shr edx, 8
mov eax, edx
and eax, 0xff0000
shr edi, 0x18
shr ecx, 0x18
imul ecx, eax
mov eax, dword [esi + 0xc]
imul eax, dword [esp + 0x38]
shr eax, 0x18
imul eax, edx
and eax, 0xff00
or ecx, eax
shr ecx, 8
mov edx, ecx
movzx eax, cl
mov ecx, dword [esp + 0x18]
and edx, 0xff0000
imul eax, edi
and ecx, 0xff00
imul edx, edi
imul ecx, ebp
mov ebp, dword [esp + 0x1c]
or edx, eax
mov eax, dword [esp + 0x10]
and eax, 0xff00
shr edx, 8
imul eax, ebx
mov ebx, dword [esp + 0x3c]
add ecx, eax
mov eax, dword [esp + 0x50]
and eax, 0xff00
imul eax, dword [esp + 0x68]
add ecx, eax
mov eax, dword [ebx + ebp*4]
mov ebp, dword [esp + 0x5c]
and eax, 0xff00
imul eax, dword [esp + 0x28]
mov ebx, 0xff
add ecx, eax
mov eax, dword [esi + 8]
imul eax, ebp
and ecx, 0xff0000
bswap ecx
shr eax, 0x18
imul ecx, eax
and ecx, 0xff0000
bswap ecx
imul ecx, edi
movzx edi, dl
and ecx, 0xff0000
bswap ecx
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x84]
mov ecx, dword [ecx]
mov eax, ecx
and eax, 0xff0000
add eax, edx
mov edx, 0xff
shr eax, 0x10
cmp eax, ebx
cmovbe ebx, eax
mov eax, ecx
and eax, 0xff00
add eax, dword [esp + 0x18]
shr eax, 8
cmp eax, edx
cmovbe edx, eax
movzx eax, cl
mov ecx, 0xff
add eax, edi
mov edi, dword [esp + 0x4c]
cmp eax, ecx
cmovbe ecx, eax
add ebp, dword [esp + 0xb4]
mov eax, dword [esp + 0xac]
or ebx, 0xffffff00
add dword [esp + 0x34], eax
mov eax, dword [esp + 0xb0]
add dword [esp + 0x30], eax
mov eax, dword [esp + 0x88]
add dword [esp + 0x38], eax
add edi, dword [esp + 0xa0]
mov eax, dword [esp + 0x78]
shl ebx, 8
or ebx, edx
mov dword [esp + 0x5c], ebp
mov ebp, dword [esp + 0x54]
add ebp, dword [esp + 0x8c]
shl ebx, 8
or ebx, ecx
mov dword [esp + 0x54], ebp
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x4c], edi
mov dword [ecx], ebx
add ecx, 4
mov dword [esp + 0x84], ecx
test eax, eax
jg 0x462d60
mov edx, dword [esp + 0x108]
mov eax, dword [esp + 0xe8]
add dword [esp + 0x60], eax
mov eax, dword [esp + 0x40]
add eax, dword [esp + 0x64]
lea ecx, [edx*4]
add dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xe0]
add dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0xdc]
add dword [esp + 0x70], ecx
mov ecx, dword [esp + 0xf4]
add dword [esp + 0x74], ecx
mov ecx, dword [esp + 0xf0]
add dword [esp + 0x80], ecx
mov ecx, dword [esp + 0xe4]
add dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0xec]
add dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x40], eax
test ecx, ecx
jg 0x462c30
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xec
ret