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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push 0
push 0x6b578c
push 0x6b5b1c
mov esi, ecx
push 0
push edi
mov dword [esp + 0x58], esi
mov byte [edi + 4], 1
call fcn.00627068
add esp, 0x14
push 0
push 0x6b576c
push 0x6b5b1c
push 0
push edi
call fcn.00627068
mov dword [esp + 0x88], eax
mov eax, dword [esi]
mov edx, dword [eax + 0x68]
add esp, 0x14
mov ecx, esi
call edx
mov ecx, esi
call fcn.00571a20
test al, al
je 0x589b53
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x18]
mov ebx, dword [ebp + 0x10]
push 1
push eax
mov eax, dword [ebp + 0x14]
push ecx
mov ecx, dword [esi + 0x6c]
push edx
mov edx, dword [ecx + 0x30]
push eax
push edi
mov edi, dword [ebp + 0xc]
push edx
call fcn.0056e370
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
fldz
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
fst qword [esp + 0x88]
mov esi, dword [ebp + 0xc]
fst qword [esp + 0x90]
lea eax, [esp + 0x88]
fst qword [esp + 0x98]
push eax
fstp qword [esp + 0xa4]
xor edi, edi
push ecx
push edx
lea ebx, [esp + 0x68]
mov dword [esp + 0x68], edi
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
call fcn.0059b3b0
test al, al
je 0x58a276
mov esi, dword [esp + 0x74]
cmp esi, edi
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
lea ebx, [eax + ecx - 1]
je 0x58a26b
mov edx, dword [esi]
mov eax, dword [edx + 0x68]
mov ecx, esi
call eax
mov edi, dword [esp + 0x44]
mov edx, dword [esi]
mov eax, dword [edi + 0x6c]
mov edx, dword [edx + 0x44]
push eax
mov ecx, esi
call edx
cmp dword [ebp + 0x1c], 0
mov dword [esp + 0x78], eax
jne 0x58a924
cmp dword [esi + 0x48], 0
jne 0x58a27f
mov eax, dword [edi]
mov edx, dword [eax + 0xbc]
mov ecx, edi
call edx
test al, al
je 0x58a276
fld qword [esp + 0x90]
fld qword [0x688738]
fmul st(1), st(0)
fxch st(1)
call fcn.00643d70
fld qword [esp + 0x98]
fmul st(1)
mov dword [esp + 0x14], eax
fidiv dword [esp + 0x64]
call fcn.00643d70
fld qword [esp + 0xa0]
fmul st(1)
mov dword [esp + 0x54], eax
fidiv dword [esp + 0x68]
call fcn.00643d70
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x58], eax
mov eax, esi
call fcn.0056a440
test al, al
je 0x589ed7
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x589d99
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
mov esi, dword [edi + 0xdc]
cdq
sub eax, edx
sar eax, 1
add eax, ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
lea edx, [ecx + eax*2]
mov eax, dword [edi + 0xd8]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x10], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
sar ecx, 0x10
imul ecx, dword [ebx + 0x24]
mov ebx, dword [esp + 0x78]
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x589d67
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
sar eax, 0x10
mov ebx, dword [ecx + eax*4]
movzx eax, word [edx]
mov dword [esp + 0x20], ebx
shr ebx, 0x18
je 0x589d51
mov ecx, pe_nt_image_headers32
sub ecx, ebx
mov ebx, eax
and ebx, edi
imul ebx, ecx
shr ebx, 8
and ebx, edi
mov edi, eax
and edi, esi
imul edi, ecx
shr edi, 8
and edi, esi
mov esi, dword [esp + 0x28]
add edi, dword [esp + 0x20]
and eax, esi
imul eax, ecx
shr eax, 8
and eax, esi
mov esi, dword [esp + 0x34]
add edi, ebx
add eax, edi
mov edi, dword [esp + 0x2c]
mov word [edx], ax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x54]
sub edx, 2
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
jne 0x589cfb
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
mov ecx, dword [esp + 0x10]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x58]
add dword [esp + 0x14], eax
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], edx
jne 0x589cc9
jmp 0x58a25d
cmp eax, 0x20
jne 0x58a25b
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [esp + 0x60]
mov esi, dword [ecx + 0xdc]
mov edi, dword [ecx + 0xe0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xd8]
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x34], esi
mov dword [esp + 0x2c], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x14]
mov ebx, dword [esp + 0x74]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x10]
sar ecx, 0x10
imul ecx, dword [ebx + 0x24]
mov ebx, dword [esp + 0x78]
lea ecx, [ebx + ecx*4]
mov dword [esp + 0x40], ecx
mov ecx, dword [esp + 0x64]
test ecx, ecx
mov dword [esp + 0x24], eax
jle 0x589ea1
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x40]
sar eax, 0x10
mov ebx, dword [ecx + eax*4]
mov eax, dword [edx]
mov dword [esp + 0x20], ebx
shr ebx, 0x18
je 0x589e8b
mov ecx, pe_nt_image_headers32
sub ecx, ebx
mov ebx, eax
and ebx, edi
imul ebx, ecx
shr ebx, 8
and ebx, edi
mov edi, eax
and edi, esi
imul edi, ecx
shr edi, 8
and edi, esi
mov esi, dword [esp + 0x28]
add edi, dword [esp + 0x20]
and eax, esi
imul eax, ecx
shr eax, 8
and eax, esi
mov esi, dword [esp + 0x34]
add edi, ebx
add eax, edi
mov edi, dword [esp + 0x2c]
mov dword [edx], eax
mov eax, dword [esp + 0x24]
add eax, dword [esp + 0x54]
sub edx, 4
sub dword [esp + 0x18], 1
mov dword [esp + 0x24], eax
jne 0x589e37
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
mov ecx, dword [esp + 0x10]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x58]
add dword [esp + 0x14], eax
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], edx
jne 0x589e05
jmp 0x58a25d
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
imul ecx, eax
mov dword [esp + 0x3c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x3c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [esp + 0x3c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x50], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x70], eax
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58a0cb
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
sar eax, 1
add eax, ebx
test esi, esi
lea edx, [ecx + eax*2]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x48], edx
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x4c], esi
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x48]
sar eax, 0x10
imul eax, dword [ecx + 0x24]
cmp dword [esp + 0x64], 0
mov dword [esp + 0x30], edx
mov edx, dword [esp + 0x78]
lea eax, [edx + eax*4]
mov dword [esp + 0x10], ebx
mov dword [esp + 0x40], eax
jle 0x58a099
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x1c], ecx
mov edx, dword [esp + 0x30]
mov eax, dword [esp + 0x40]
sar edx, 0x10
mov esi, dword [eax + edx*4]
movzx ecx, word [ebx]
mov edx, esi
shr edx, 0x18
imul edx, dword [esp + 0x3c]
mov eax, 0x80808081
mul edx
shr edx, 7
je 0x58a07f
mov eax, pe_nt_image_headers32
sub eax, edx
mov edx, ecx
and edx, edi
imul edx, eax
mov ebx, esi
and ebx, edi
imul ebx, dword [esp + 0x70]
add edx, ebx
shr edx, 8
and edx, dword [esp + 0x18]
mov edi, ecx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x24]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [esp + 0x50]
add edi, eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
shr edi, 8
and edi, edx
add eax, edi
mov edi, dword [esp + 0x18]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x28]
and ecx, eax
imul ecx, dword [esp + 0x2c]
and esi, eax
imul esi, dword [esp + 0x34]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov word [ebx], ax
mov ecx, dword [esp + 0x54]
add dword [esp + 0x30], ecx
sub ebx, 2
sub dword [esp + 0x1c], 1
mov dword [esp + 0x10], ebx
jne 0x589fe1
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
mov ecx, dword [esp + 0x48]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x58]
add dword [esp + 0x14], eax
sub dword [esp + 0x4c], 1
mov dword [esp + 0x48], edx
jne 0x589fa4
jmp 0x58a25d
cmp eax, 0x20
jne 0x58a25b
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, ebx
test esi, esi
mov ebx, dword [ecx + 0xdc]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xd8]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0xe0]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x28], ebx
mov dword [esp + 0x10], eax
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], esi
nop
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x74]
sar eax, 0x10
imul eax, dword [edx + 0x24]
test ecx, ecx
mov edx, dword [esp + 0x78]
lea eax, [edx + eax*4]
mov dword [esp + 0x30], edi
mov dword [esp + 0x40], eax
jle 0x58a22c
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x40]
sar ecx, 0x10
mov ecx, dword [edx + ecx*4]
mov esi, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x3c]
mov eax, 0x80808081
mul edx
shr edx, 7
je 0x58a20a
mov eax, pe_nt_image_headers32
sub eax, edx
mov edx, ecx
and edx, dword [esp + 0x10]
mov edi, esi
and edi, dword [esp + 0x10]
imul edx, dword [esp + 0x70]
imul edi, eax
add edx, edi
mov dword [esp + 0x20], eax
shr edx, 8
and edx, dword [esp + 0x10]
mov eax, ecx
and eax, ebx
imul eax, dword [esp + 0x50]
mov edi, esi
and edi, ebx
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x2c], edx
mov edx, dword [esp + 0x20]
imul edi, edx
add eax, edi
mov edi, dword [esp + 0x2c]
shr eax, 8
and eax, ebx
add edi, eax
mov eax, dword [esp + 0x1c]
and ecx, eax
imul ecx, dword [esp + 0x34]
and esi, eax
imul esi, edx
add ecx, esi
shr ecx, 8
and ecx, eax
add edi, ecx
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [edi], eax
mov ecx, dword [esp + 0x54]
add dword [esp + 0x48], ecx
sub edi, 4
sub dword [esp + 0x24], 1
mov dword [esp + 0x30], edi
jne 0x58a172
mov edi, dword [esp + 0x4c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x58]
add dword [esp + 0x14], eax
sub dword [esp + 0x18], 1
mov dword [esp + 0x4c], edi
jne 0x58a140
jmp 0x58a25d
fstp st(0)
mov ecx, dword [esp + 0x44]
mov edx, dword [ecx]
mov eax, dword [edx + 0xc0]
call eax
mov edi, dword [esp + 0x44]
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi + 0x4c]
mov edx, dword [edi]
mov eax, dword [edx + 0xbc]
mov dword [esp + 0x58], ecx
mov ecx, edi
call eax
test al, al
je 0x58a276
fld qword [esp + 0x90]
fld qword [0x688738]
fmul st(1), st(0)
fxch st(1)
call fcn.00643d70
fld qword [esp + 0x98]
fmul st(1)
mov dword [esp + 0x14], eax
fidiv dword [esp + 0x64]
call fcn.00643d70
fld qword [esp + 0xa0]
fmul st(1)
mov dword [esp + 0x3c], eax
fidiv dword [esp + 0x68]
call fcn.00643d70
mov esi, dword [ebp + 0x18]
mov dword [esp + 0x70], eax
mov eax, esi
call fcn.0056a440
test al, al
je 0x58a588
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58a436
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
mov esi, dword [edi + 0xdc]
cdq
sub eax, edx
sar eax, 1
add eax, ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
lea edx, [ecx + eax*2]
mov eax, dword [edi + 0xd8]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x30], edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x28], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], ebx
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x74]
mov edx, dword [esp + 0x30]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x14]
sar ecx, 0x10
imul ecx, dword [eax + 0x24]
add ecx, dword [esp + 0x58]
cmp dword [esp + 0x64], 0
mov dword [esp + 0x24], ecx
jle 0x58a404
mov eax, dword [esp + 0x64]
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
sar eax, 0x10
movzx eax, byte [eax + ecx]
mov ebx, dword [ebx + eax*4]
movzx eax, word [edx]
mov dword [esp + 0x40], ebx
shr ebx, 0x18
je 0x58a3f2
mov ecx, pe_nt_image_headers32
sub ecx, ebx
mov ebx, eax
and ebx, edi
imul ebx, ecx
shr ebx, 8
and ebx, edi
mov edi, eax
and edi, esi
imul edi, ecx
shr edi, 8
and edi, esi
mov esi, dword [esp + 0x20]
add edi, dword [esp + 0x40]
and eax, esi
imul eax, ecx
mov ecx, dword [esp + 0x24]
shr eax, 8
and eax, esi
mov esi, dword [esp + 0x2c]
add edi, ebx
add eax, edi
mov edi, dword [esp + 0x28]
mov word [edx], ax
mov eax, dword [esp + 0x3c]
add dword [esp + 0x10], eax
sub edx, 2
sub dword [esp + 0x34], 1
jne 0x58a390
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x90]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x14], ecx
cdq
sub eax, edx
mov edx, dword [esp + 0x30]
sar eax, 1
sub dword [esp + 0x50], 1
lea eax, [edx + eax*2]
mov dword [esp + 0x30], eax
jne 0x58a35a
jmp 0x58a25d
cmp eax, 0x20
jne 0x58a25b
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [esp + 0x60]
mov esi, dword [ecx + 0xdc]
mov edi, dword [ecx + 0xe0]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, ebx
mov ebx, dword [esp + 0x68]
test ebx, ebx
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xd8]
mov dword [esp + 0x30], eax
mov dword [esp + 0x20], edx
mov dword [esp + 0x24], esi
mov dword [esp + 0x2c], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x30]
sar ecx, 0x10
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x74]
imul ecx, dword [eax + 0x24]
add ecx, dword [esp + 0x58]
cmp dword [esp + 0x64], 0
mov dword [esp + 0x28], ecx
jle 0x58a552
mov eax, dword [esp + 0x64]
mov dword [esp + 0x34], eax
jmp 0x58a4e0
mov eax, dword [esp + 0x10]
mov ebx, dword [esp + 0x78]
sar eax, 0x10
movzx eax, byte [eax + ecx]
mov ebx, dword [ebx + eax*4]
mov eax, dword [edx]
mov dword [esp + 0x40], ebx
shr ebx, 0x18
je 0x58a540
mov ecx, pe_nt_image_headers32
sub ecx, ebx
mov ebx, eax
and ebx, edi
imul ebx, ecx
shr ebx, 8
and ebx, edi
mov edi, eax
and edi, esi
imul edi, ecx
shr edi, 8
and edi, esi
mov esi, dword [esp + 0x20]
add edi, dword [esp + 0x40]
and eax, esi
imul eax, ecx
mov ecx, dword [esp + 0x28]
shr eax, 8
and eax, esi
mov esi, dword [esp + 0x24]
add edi, ebx
add eax, edi
mov edi, dword [esp + 0x2c]
mov dword [edx], eax
mov eax, dword [esp + 0x3c]
add dword [esp + 0x10], eax
sub edx, 4
sub dword [esp + 0x34], 1
jne 0x58a4e0
mov ecx, dword [esp + 0x44]
mov eax, dword [ecx + 0x90]
mov ecx, dword [esp + 0x70]
add dword [esp + 0x14], ecx
cdq
and edx, 3
add eax, edx
mov edx, dword [esp + 0x30]
sar eax, 2
sub dword [esp + 0x50], 1
lea eax, [edx + eax*4]
mov dword [esp + 0x30], eax
jne 0x58a4a2
jmp 0x58a25d
mov eax, dword [esi + 0xc]
mov ecx, dword [esi]
imul ecx, eax
mov dword [esp + 0x54], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x54]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x28], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [esp + 0x54]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58a782
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xd8]
mov esi, dword [esp + 0x68]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, ebx
test esi, esi
lea eax, [edx + eax*2]
mov edx, dword [edi + 0xdc]
mov edi, dword [edi + 0xe0]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x50], edi
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov dword [esp + 0x18], esi
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x74]
mov ebx, dword [esp + 0x48]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x14]
sar eax, 0x10
imul eax, dword [ecx + 0x24]
add eax, dword [esp + 0x58]
cmp dword [esp + 0x64], 0
mov dword [esp + 0x10], ebx
mov dword [esp + 0x40], eax
jle 0x58a750
mov edx, dword [esp + 0x64]
mov dword [esp + 0x24], edx
nop
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x40]
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x78]
mov esi, dword [eax + edx*4]
movzx ecx, word [ebx]
mov edx, esi
shr edx, 0x18
imul edx, dword [esp + 0x54]
mov eax, 0x80808081
mul edx
shr edx, 7
je 0x58a736
mov eax, pe_nt_image_headers32
sub eax, edx
mov edx, ecx
and edx, edi
imul edx, eax
mov ebx, esi
and ebx, edi
imul ebx, dword [esp + 0x1c]
add edx, ebx
shr edx, 8
and edx, dword [esp + 0x50]
mov edi, ecx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x34]
and edi, edx
imul edi, eax
mov eax, esi
and eax, edx
imul eax, dword [esp + 0x2c]
add edi, eax
mov eax, dword [esp + 0x20]
mov ebx, dword [esp + 0x10]
shr edi, 8
and edi, edx
add eax, edi
mov edi, dword [esp + 0x50]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x4c]
and ecx, eax
imul ecx, dword [esp + 0x6c]
and esi, eax
imul esi, dword [esp + 0x28]
add ecx, esi
shr ecx, 8
and ecx, eax
mov eax, dword [esp + 0x20]
add eax, ecx
mov word [ebx], ax
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x30], ecx
sub ebx, 2
sub dword [esp + 0x24], 1
mov dword [esp + 0x10], ebx
jne 0x58a690
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
mov ecx, dword [esp + 0x48]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x70]
add dword [esp + 0x14], eax
sub dword [esp + 0x18], 1
mov dword [esp + 0x48], edx
jne 0x58a655
jmp 0x58a25d
cmp eax, 0x20
jne 0x58a25b
mov ecx, edi
mov eax, dword [ecx + 0x90]
imul eax, dword [esp + 0x60]
mov esi, dword [esp + 0x68]
cdq
and edx, 3
add eax, edx
mov edx, dword [ecx + 0xa4]
sar eax, 2
add eax, ebx
test esi, esi
mov ebx, dword [ecx + 0xdc]
lea eax, [edx + eax*4]
mov edx, dword [ecx + 0xd8]
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 0xe0]
mov dword [esp + 0x18], edx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x10], eax
jle 0x58a25b
fmul qword [esp + 0x88]
call fcn.00643d70
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x4c]
mov dword [esp + 0x38], eax
mov dword [esp + 0x50], esi
jmp 0x58a800
mov edx, dword [esp + 0x38]
mov eax, dword [esp + 0x14]
sar eax, 0x10
mov dword [esp + 0x48], edx
mov edx, dword [esp + 0x74]
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x58]
test ecx, ecx
mov dword [esp + 0x30], edi
mov dword [esp + 0x6c], eax
jle 0x58a8f2
mov dword [esp + 0x34], ecx
nop
mov eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x6c]
sar eax, 0x10
movzx edx, byte [eax + ecx]
mov eax, dword [esp + 0x78]
mov ecx, dword [eax + edx*4]
mov esi, dword [edi]
mov edx, ecx
shr edx, 0x18
imul edx, dword [esp + 0x54]
mov eax, 0x80808081
mul edx
shr edx, 7
je 0x58a8d0
mov eax, pe_nt_image_headers32
sub eax, edx
mov edx, ecx
and edx, dword [esp + 0x10]
mov edi, esi
and edi, dword [esp + 0x10]
imul edx, dword [esp + 0x1c]
imul edi, eax
add edx, edi
mov dword [esp + 0x40], eax
shr edx, 8
and edx, dword [esp + 0x10]
mov eax, ecx
and eax, ebx
imul eax, dword [esp + 0x2c]
mov edi, esi
and edi, ebx
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x40]
imul edi, edx
add eax, edi
mov edi, dword [esp + 0x24]
shr eax, 8
and eax, ebx
add edi, eax
mov eax, dword [esp + 0x18]
and ecx, eax
imul ecx, dword [esp + 0x28]
and esi, eax
imul esi, edx
add ecx, esi
shr ecx, 8
and ecx, eax
add edi, ecx
mov eax, edi
mov edi, dword [esp + 0x30]
mov dword [edi], eax
mov ecx, dword [esp + 0x3c]
add dword [esp + 0x48], ecx
sub edi, 4
sub dword [esp + 0x34], 1
mov dword [esp + 0x30], edi
jne 0x58a830
mov ecx, dword [esp + 0x64]
mov edi, dword [esp + 0x4c]
mov edx, dword [esp + 0x44]
mov eax, dword [edx + 0x90]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edi, [edi + eax*4]
mov eax, dword [esp + 0x70]
add dword [esp + 0x14], eax
sub dword [esp + 0x50], 1
mov dword [esp + 0x4c], edi
jne 0x58a800
jmp 0x58a25d
cmp dword [esi + 0x48], 0
mov edx, dword [edi]
mov eax, dword [edx + 0xbc]
jne 0x58b0fd
mov ecx, edi
call eax
test al, al
je 0x58a276
mov eax, dword [edi + 0x6c]
fld qword [esp + 0x90]
mov ecx, dword [eax + 0xd0]
fld qword [0x688738]
mov edx, dword [eax + 0xd4]
fmul st(1), st(0)
mov esi, dword [eax + 0x28]
fxch st(1)
mov dword [esp + 0x4c], ecx
mov ecx, dword [eax + 0xd8]
mov dword [esp + 0x58], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x54], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x34], esi
call fcn.00643d70
fld qword [esp + 0x98]
fmul st(1)
mov dword [esp + 0x14], eax
fidiv dword [esp + 0x64]
call fcn.00643d70
fld qword [esp + 0xa0]
fmul st(1)
mov dword [esp + 0x48], eax
fidiv dword [esp + 0x68]
call fcn.00643d70
mov dword [esp + 0x30], eax
mov eax, dword [ebp + 0x18]
call fcn.0056a440
test al, al
je 0x58acec
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58ab62
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xd8]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea eax, [edx + eax*2]
mov edx, dword [edi + 0xdc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x40], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x34], eax
lea ecx, [ecx]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
sar edx, 0x10
imul edx, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x6c], edx
jle 0x58ab1d
mov dword [esp + 0x2c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
sar eax, 0x10
mov edx, dword [edx + eax*4]
test edx, edx
movzx eax, word [ecx]
je 0x58ab03
mov edi, eax
and edi, ebx
mov ecx, edx
and ecx, ebx
add edi, ecx
mov ecx, esi
shr edi, cl
mov ecx, dword [esp + 0x70]
mov ebx, eax
and ebx, dword [esp + 0x28]
mov di, word [ecx + edi*4]
mov ecx, esi
shl di, cl
mov ecx, edx
and ecx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x3c]
shr ebx, cl
mov ecx, dword [esp + 0x58]
mov bx, word [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl bx, cl
mov ecx, dword [esp + 0x40]
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 0x54]
add eax, edx
mov edx, dword [esp + 0x4c]
shr eax, cl
or di, bx
mov ebx, dword [esp + 0x20]
mov ax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [esp + 0x10]
or di, ax
mov word [ecx], di
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], edx
sub ecx, 2
sub dword [esp + 0x2c], 1
mov dword [esp + 0x10], ecx
jne 0x58aa80
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x18]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x30]
add dword [esp + 0x14], eax
sub dword [esp + 0x34], 1
mov dword [esp + 0x18], edx
jne 0x58aa40
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x58b0df
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea edx, [ecx + eax*4]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x40], eax
mov dword [esp + 0x28], ecx
mov dword [esp + 0x20], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov dword [esp + 0x34], edx
nop
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
sar edx, 0x10
imul edx, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], edx
jle 0x58aca3
mov dword [esp + 0x2c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
sar eax, 0x10
mov edx, dword [edx + eax*4]
test edx, edx
mov eax, dword [ecx]
je 0x58ac89
mov edi, eax
and edi, ebx
mov ecx, edx
and ecx, ebx
add edi, ecx
mov ecx, esi
shr edi, cl
mov ecx, dword [esp + 0x70]
mov ebx, eax
and ebx, dword [esp + 0x28]
mov edi, dword [ecx + edi*4]
mov ecx, esi
shl edi, cl
mov ecx, edx
and ecx, dword [esp + 0x28]
add ebx, ecx
mov ecx, dword [esp + 0x3c]
shr ebx, cl
mov ecx, dword [esp + 0x58]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl ebx, cl
mov ecx, dword [esp + 0x40]
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 0x54]
add eax, edx
mov edx, dword [esp + 0x4c]
shr eax, cl
or edi, ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [esp + 0x18]
or edi, eax
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], edx
sub ecx, 4
sub dword [esp + 0x2c], 1
mov dword [esp + 0x18], ecx
jne 0x58ac10
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x10]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x30]
add dword [esp + 0x14], eax
sub dword [esp + 0x34], 1
mov dword [esp + 0x10], edx
jne 0x58abd0
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x20], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
imul ecx, eax
mov dword [esp + 0x6c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
imul ecx, dword [esp + 0x6c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x24], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x50], eax
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58af23
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xd8]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea eax, [edx + eax*2]
mov edx, dword [edi + 0xdc]
mov dword [esp + 0x10], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x7c], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x34], eax
lea esp, [esp]
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
sar edx, 0x10
imul edx, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x6c], edx
jle 0x58aede
mov dword [esp + 0x2c], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x6c]
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
movzx edx, word [ecx]
mov dword [esp + 0x80], edx
je 0x58aec4
mov edi, eax
and edi, ebx
mov ecx, esi
shr edi, cl
mov ecx, edx
and ecx, ebx
and edx, dword [esp + 0x28]
imul edi, dword [esp + 0x50]
mov ebx, ecx
shr edi, 8
mov ecx, esi
shr ebx, cl
mov ecx, dword [esp + 0x70]
add edi, ebx
mov bx, word [ecx + edi*4]
mov edi, eax
and edi, dword [esp + 0x28]
mov ecx, esi
shl bx, cl
mov ecx, dword [esp + 0x3c]
shr edi, cl
shr edx, cl
imul edi, dword [esp + 0x24]
shr edi, 8
add edi, edx
mov edx, dword [esp + 0x58]
mov dx, word [edx + edi*4]
mov edi, dword [esp + 0x84]
shl dx, cl
mov ecx, dword [esp + 0x54]
and eax, edi
shr eax, cl
or bx, dx
mov edx, dword [esp + 0x80]
and edx, edi
imul eax, dword [esp + 0x20]
mov edi, dword [esp + 0x44]
shr edx, cl
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x4c]
mov ax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [esp + 0x18]
or bx, ax
mov word [ecx], bx
mov ebx, dword [esp + 0x7c]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], edx
sub ecx, 2
sub dword [esp + 0x2c], 1
mov dword [esp + 0x18], ecx
jne 0x58ae10
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x10]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x30]
add dword [esp + 0x14], eax
sub dword [esp + 0x34], 1
mov dword [esp + 0x10], edx
jne 0x58add0
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
cmp eax, 0x20
jne 0x58b0df
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea edx, [ecx + eax*4]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x10], edx
mov dword [esp + 0x6c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x40], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x74]
sar edx, 0x10
imul edx, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
lea edx, [eax + edx*4]
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], edx
jle 0x58b096
mov dword [esp + 0x28], eax
lea ecx, [ecx]
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
sar eax, 0x10
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
je 0x58b07c
mov edi, eax
and edi, ebx
mov ecx, esi
shr edi, cl
mov ecx, edx
and ecx, ebx
mov ebx, ecx
imul edi, dword [esp + 0x50]
mov ecx, esi
shr ebx, cl
mov ecx, dword [esp + 0x70]
shr edi, 8
add edi, ebx
mov edi, dword [ecx + edi*4]
mov ecx, esi
mov esi, dword [esp + 0x84]
shl edi, cl
mov ecx, dword [esp + 0x3c]
mov ebx, eax
and ebx, esi
shr ebx, cl
mov ecx, edx
and ecx, esi
mov esi, ecx
imul ebx, dword [esp + 0x24]
mov ecx, dword [esp + 0x3c]
shr esi, cl
mov ecx, dword [esp + 0x58]
shr ebx, 8
add ebx, esi
mov esi, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl esi, cl
mov ecx, dword [esp + 0x54]
mov ebx, dword [esp + 0x40]
or edi, esi
mov esi, dword [esp + 0x6c]
and eax, esi
shr eax, cl
and edx, esi
mov esi, dword [esp + 0x34]
shr edx, cl
imul eax, dword [esp + 0x20]
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x4c]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [esp + 0x18]
or edi, eax
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
add dword [esp + 0x1c], edx
sub ecx, 4
sub dword [esp + 0x28], 1
mov dword [esp + 0x18], ecx
jne 0x58afd0
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x10]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x30]
add dword [esp + 0x14], eax
sub dword [esp + 0x2c], 1
mov dword [esp + 0x10], edx
jne 0x58af93
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
fstp st(0)
mov edx, dword [edi]
mov eax, dword [edx + 0xc0]
mov ecx, edi
call eax
mov esi, edi
call fcn.00572530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x1c
mov ecx, dword [esi + 0x4c]
mov dword [esp + 0x30], ecx
mov ecx, edi
call eax
test al, al
je 0x58a276
mov eax, dword [edi + 0x6c]
fld qword [esp + 0x90]
mov ecx, dword [eax + 0xd0]
fld qword [0x688738]
mov edx, dword [eax + 0xd4]
fmul st(1), st(0)
mov esi, dword [eax + 0x28]
fxch st(1)
mov dword [esp + 0x58], ecx
mov ecx, dword [eax + 0xd8]
mov dword [esp + 0x4c], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x48], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x70], edx
mov dword [esp + 0x3c], ecx
mov dword [esp + 0x6c], esi
call fcn.00643d70
fld qword [esp + 0x98]
fmul st(1)
mov dword [esp + 0x14], eax
fidiv dword [esp + 0x64]
call fcn.00643d70
fld qword [esp + 0xa0]
fmul st(1)
mov dword [esp + 0x54], eax
fidiv dword [esp + 0x68]
call fcn.00643d70
mov dword [esp + 0x10], eax
mov eax, dword [ebp + 0x18]
call fcn.0056a440
test al, al
je 0x58b4b3
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58b32d
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xd8]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea eax, [edx + eax*2]
mov edx, dword [edi + 0xdc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0x84], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
sar eax, 0x10
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x30]
mov dword [esp + 0x1c], ecx
mov ecx, dword [esp + 0x24]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x18], ecx
jle 0x58b2ff
mov dword [esp + 0x28], eax
jmp 0x58b250
mov eax, dword [esp + 0x1c]
mov edx, dword [esp + 0x7c]
sar eax, 0x10
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax*4]
test edx, edx
movzx eax, word [ecx]
je 0x58b2e5
mov edi, eax
and edi, ebx
mov ecx, edx
and ecx, ebx
add edi, ecx
mov ecx, esi
shr edi, cl
mov ecx, dword [esp + 0x48]
mov ebx, eax
and ebx, dword [esp + 0x20]
mov di, word [ecx + edi*4]
mov ecx, esi
shl di, cl
mov ecx, edx
and ecx, dword [esp + 0x20]
add ebx, ecx
mov ecx, dword [esp + 0x3c]
shr ebx, cl
mov ecx, dword [esp + 0x4c]
mov bx, word [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl bx, cl
mov ecx, dword [esp + 0x80]
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x58]
shr eax, cl
or di, bx
mov ebx, dword [esp + 0x84]
mov ax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [esp + 0x18]
or di, ax
mov word [ecx], di
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
add dword [esp + 0x1c], edx
sub ecx, 2
sub dword [esp + 0x28], 1
mov dword [esp + 0x18], ecx
jne 0x58b250
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x24]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], eax
sub dword [esp + 0x2c], 1
mov dword [esp + 0x24], edx
jne 0x58b211
jmp 0x58b0e1
cmp eax, 0x20
jne 0x58b0df
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea edx, [ecx + eax*4]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x80], eax
mov dword [esp + 0x20], ecx
mov dword [esp + 0x84], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov dword [esp + 0x2c], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
sar eax, 0x10
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x58b481
mov dword [esp + 0x28], eax
jmp 0x58b3e0
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
sar eax, 0x10
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x78]
mov edx, dword [edx + eax*4]
test edx, edx
mov eax, dword [ecx]
je 0x58b467
mov edi, eax
and edi, ebx
mov ecx, edx
and ecx, ebx
add edi, ecx
mov ecx, esi
shr edi, cl
mov ecx, dword [esp + 0x48]
mov ebx, eax
and ebx, dword [esp + 0x20]
mov edi, dword [ecx + edi*4]
mov ecx, esi
shl edi, cl
mov ecx, edx
and ecx, dword [esp + 0x20]
add ebx, ecx
mov ecx, dword [esp + 0x3c]
shr ebx, cl
mov ecx, dword [esp + 0x4c]
mov ebx, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl ebx, cl
mov ecx, dword [esp + 0x80]
and eax, ecx
and edx, ecx
mov ecx, dword [esp + 0x70]
add eax, edx
mov edx, dword [esp + 0x58]
shr eax, cl
or edi, ebx
mov ebx, dword [esp + 0x84]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [esp + 0x24]
or edi, eax
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
add dword [esp + 0x18], edx
sub ecx, 4
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], ecx
jne 0x58b3e0
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x1c]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], eax
sub dword [esp + 0x2c], 1
mov dword [esp + 0x1c], edx
jne 0x58b3a0
jmp 0x58b0e1
mov ecx, dword [ebp + 0x18]
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx]
imul ecx, eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x18]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 0xc]
imul ecx, eax
mov dword [esp + 0x7c], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [ebp + 0x18]
mov ecx, dword [ecx + 8]
imul ecx, dword [esp + 0x7c]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x50], eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x34], eax
mov eax, dword [edi + 0xd4]
cmp eax, 0x10
jne 0x58b6d1
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xd8]
cdq
sub eax, edx
mov edx, dword [edi + 0xa4]
sar eax, 1
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea eax, [edx + eax*2]
mov edx, dword [edi + 0xdc]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x84], ecx
mov dword [esp + 0x20], edx
mov dword [esp + 0xac], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov dword [esp + 0x38], eax
mov eax, dword [esp + 0x68]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x38]
sar eax, 0x10
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x30]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x64]
test eax, eax
mov dword [esp + 0x24], ecx
jle 0x58b6a3
mov dword [esp + 0x28], eax
lea ebx, [ebx]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
sar eax, 0x10
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x78]
mov eax, dword [edx + eax*4]
test eax, eax
movzx edx, word [ecx]
mov dword [esp + 0x6c], edx
je 0x58b689
mov edi, eax
and edi, ebx
mov ecx, esi
shr edi, cl
mov ecx, edx
and ecx, ebx
and edx, dword [esp + 0x20]
imul edi, dword [esp + 0x34]
mov ebx, ecx
shr edi, 8
mov ecx, esi
shr ebx, cl
mov ecx, dword [esp + 0x48]
add edi, ebx
mov bx, word [ecx + edi*4]
mov edi, eax
and edi, dword [esp + 0x20]
mov ecx, esi
shl bx, cl
mov ecx, dword [esp + 0x3c]
shr edi, cl
shr edx, cl
imul edi, dword [esp + 0x50]
shr edi, 8
add edi, edx
mov edx, dword [esp + 0x4c]
mov dx, word [edx + edi*4]
mov edi, dword [esp + 0x84]
shl dx, cl
mov ecx, dword [esp + 0x70]
and eax, edi
shr eax, cl
or bx, dx
mov edx, dword [esp + 0x6c]
and edx, edi
imul eax, dword [esp + 0x40]
mov edi, dword [esp + 0x44]
shr edx, cl
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x58]
mov ax, word [edx + eax*4]
shl ax, cl
mov ecx, dword [esp + 0x24]
or bx, ax
mov word [ecx], bx
mov ebx, dword [esp + 0xac]
mov edx, dword [esp + 0x54]
add dword [esp + 0x18], edx
sub ecx, 2
sub dword [esp + 0x28], 1
mov dword [esp + 0x24], ecx
jne 0x58b5d0
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x1c]
cdq
sub eax, edx
sar eax, 1
lea edx, [ecx + eax*2]
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], eax
sub dword [esp + 0x2c], 1
mov dword [esp + 0x1c], edx
jne 0x58b593
jmp 0x58b0e1
cmp eax, 0x20
jne 0x58b0df
mov eax, dword [edi + 0x90]
imul eax, dword [esp + 0x60]
mov ecx, dword [edi + 0xa4]
cdq
and edx, 3
add eax, edx
sar eax, 2
add eax, ebx
cmp dword [esp + 0x68], 0
mov ebx, dword [edi + 0xe0]
lea edx, [ecx + eax*4]
mov eax, dword [edi + 0xd8]
mov ecx, dword [edi + 0xdc]
mov dword [esp + 0x1c], edx
mov dword [esp + 0x84], eax
mov dword [esp + 0x80], ecx
mov dword [esp + 0x2c], ebx
jle 0x58b0df
fmul qword [esp + 0x88]
call fcn.00643d70
mov edx, dword [esp + 0x68]
mov dword [esp + 0x38], eax
mov dword [esp + 0x28], edx
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x74]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x14]
sar eax, 0x10
imul eax, dword [edx + 0x24]
add eax, dword [esp + 0x30]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xac], eax
mov eax, dword [esp + 0x64]
test eax, eax
jle 0x58b854
mov dword [esp + 0x20], eax
mov edi, edi
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0xac]
sar eax, 0x10
movzx eax, byte [eax + edx]
mov edx, dword [esp + 0x78]
mov eax, dword [edx + eax*4]
test eax, eax
mov edx, dword [ecx]
je 0x58b83a
mov edi, eax
and edi, ebx
mov ecx, esi
shr edi, cl
mov ecx, edx
and ecx, ebx
mov ebx, ecx
imul edi, dword [esp + 0x34]
mov ecx, esi
shr ebx, cl
mov ecx, dword [esp + 0x48]
shr edi, 8
add edi, ebx
mov edi, dword [ecx + edi*4]
mov ecx, esi
mov esi, dword [esp + 0x80]
shl edi, cl
mov ecx, dword [esp + 0x3c]
mov ebx, eax
and ebx, esi
shr ebx, cl
mov ecx, edx
and ecx, esi
mov esi, ecx
imul ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x3c]
shr esi, cl
mov ecx, dword [esp + 0x4c]
shr ebx, 8
add ebx, esi
mov esi, dword [ecx + ebx*4]
mov ecx, dword [esp + 0x3c]
shl esi, cl
mov ecx, dword [esp + 0x70]
mov ebx, dword [esp + 0x2c]
or edi, esi
mov esi, dword [esp + 0x84]
and eax, esi
shr eax, cl
and edx, esi
mov esi, dword [esp + 0x6c]
shr edx, cl
imul eax, dword [esp + 0x40]
shr eax, 8
add eax, edx
mov edx, dword [esp + 0x58]
mov eax, dword [edx + eax*4]
shl eax, cl
mov ecx, dword [esp + 0x24]
or edi, eax
mov dword [ecx], edi
mov edi, dword [esp + 0x44]
mov edx, dword [esp + 0x54]
add dword [esp + 0x18], edx
sub ecx, 4
sub dword [esp + 0x20], 1
mov dword [esp + 0x24], ecx
jne 0x58b780
mov eax, dword [edi + 0x90]
mov ecx, dword [esp + 0x1c]
cdq
and edx, 3
add eax, edx
sar eax, 2
lea edx, [ecx + eax*4]
mov eax, dword [esp + 0x10]
add dword [esp + 0x14], eax
sub dword [esp + 0x28], 1
mov dword [esp + 0x1c], edx
jne 0x58b744
jmp 0x58b0e1