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

Disassembly:
sub esp, 0x144
push ebx
push ebp
push esi
mov esi, ecx
push edi
mov eax, dword [esi]
call dword [eax + 0x4c]
lea ecx, [esp + 0xb4]
push ecx
lea ecx, [esi + 0x1c]
call fcn.005f5dc0
mov eax, dword [esp + 0x158]
lea edx, [esp + 0x34]
lea ecx, [eax + 0xc]
add eax, 0x18
cmp edx, ecx
jne 0x6478be
mov edx, dword [ecx]
mov dword [esp + 0x48], edx
mov edx, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], ecx
lea ecx, [esp + 0x48]
fld dword [esp + 0xb4]
fmul dword [ecx]
fld dword [esp + 0xbc]
fmul dword [ecx + 8]
lea edx, [esp + 0x48]
cmp edx, eax
faddp st(1)
fld dword [esp + 0xb8]
fmul dword [ecx + 4]
faddp st(1)
fadd dword [esp + 0xc0]
fst dword [esp + 0x34]
fld dword [esp + 0xc4]
fmul dword [ecx]
fld dword [esp + 0xcc]
fmul dword [ecx + 8]
faddp st(1)
fld dword [esp + 0xc8]
fmul dword [ecx + 4]
faddp st(1)
fadd dword [esp + 0xd0]
fstp dword [esp + 0x38]
fld dword [esp + 0xd4]
fmul dword [ecx]
fld dword [esp + 0xdc]
fmul dword [ecx + 8]
faddp st(1)
fld dword [esp + 0xd8]
fmul dword [ecx + 4]
faddp st(1)
fadd dword [esp + 0xe0]
jne 0x64795e
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp + 0x70], ecx
mov dword [esp + 0x78], eax
mov dword [esp + 0x74], edx
lea eax, [esp + 0x70]
fld dword [esp + 0xb4]
fmul dword [eax]
fld dword [esp + 0xbc]
fmul dword [eax + 8]
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x80]
faddp st(1)
fld dword [esp + 0xb8]
fmul dword [eax + 4]
faddp st(1)
fadd dword [esp + 0xc0]
fstp dword [esp + 0x48]
fld dword [esp + 0xc4]
fmul dword [eax]
fld dword [esp + 0xcc]
fmul dword [eax + 8]
mov edx, dword [esp + 0x48]
mov dword [esp + 0x8c], edx
faddp st(1)
fld dword [esp + 0xc8]
fmul dword [eax + 4]
faddp st(1)
fadd dword [esp + 0xd0]
fstp dword [esp + 0x4c]
fld dword [esp + 0xd4]
fmul dword [eax]
fld dword [esp + 0xdc]
fmul dword [eax + 8]
faddp st(1)
fld dword [esp + 0xd8]
fmul dword [eax + 4]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x90], eax
faddp st(1)
fadd dword [esp + 0xe0]
fxch st(2)
fstp dword [esp + 0x80]
fstp dword [esp + 0x88]
fstp dword [esp + 0x94]
call fcn.00463a10
fld dword [esp + 0x34]
fsub dword [esi + 0xbc]
mov ecx, 0x1f
mov ebx, 1
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x20], eax
sar edx, 0x17
sub edx, 0x7f
and eax, 0x7fffff
sub ecx, edx
mov edi, edx
shl ebx, cl
mov edx, eax
sar ebp, 0x1f
sar edi, 0x1f
dec ebx
shl edx, 8
and ebx, edx
mov edx, dword [esp + 0x20]
neg ebx
sbb ebx, ebx
or eax, 0xff800000
inc ebx
dec edx
not edi
sar edx, 0x1f
xor edx, edi
and ebx, edx
shl eax, 8
and ebx, ebp
shr eax, cl
and eax, edi
xor eax, ebp
add ebx, eax
mov eax, dword [esi + 0x9c]
lea eax, [eax - 2]
mov dword [esp + 0x28], eax
jns 0x647aa8
xor ebx, ebx
jmp 0x647aae
cmp ebx, eax
jle 0x647aae
mov ebx, eax
fld dword [esp + 0x38]
fsub dword [esi + 0xc0]
mov ecx, 0x1f
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x20], eax
sar edx, 0x17
sub edx, 0x7f
and eax, 0x7fffff
mov edi, edx
sub ecx, edx
mov edx, 1
mov dword [esp + 0x2c], ecx
shl edx, cl
mov ecx, eax
sar ebp, 0x1f
sar edi, 0x1f
dec edx
shl ecx, 8
and edx, ecx
mov ecx, dword [esp + 0x20]
neg edx
sbb edx, edx
or eax, 0xff800000
inc edx
dec ecx
not edi
sar ecx, 0x1f
xor ecx, edi
and edx, ecx
mov ecx, dword [esp + 0x2c]
shl eax, 8
shr eax, cl
and edx, ebp
and eax, edi
xor eax, ebp
add edx, eax
mov eax, dword [esi + 0xa0]
mov dword [esp + 0x5c], edx
lea eax, [eax - 2]
mov dword [esp + 0x58], eax
jns 0x647b46
mov dword [esp + 0x5c], 0
jmp 0x647b4e
cmp edx, eax
jle 0x647b4e
mov dword [esp + 0x5c], eax
fld dword [esp + 0x48]
fsub dword [esi + 0xbc]
mov edi, 1
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ecx, eax
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x20], eax
sar ecx, 0x1f
sar edx, 0x17
mov dword [esp + 0x2c], ecx
sub edx, 0x7f
mov ecx, 0x1f
and eax, 0x7fffff
sub ecx, edx
mov ebp, edx
shl edi, cl
mov edx, eax
sar ebp, 0x1f
shl edx, 8
dec edi
and edi, edx
mov edx, dword [esp + 0x20]
neg edi
sbb edi, edi
or eax, 0xff800000
inc edi
dec edx
shl eax, 8
not ebp
sar edx, 0x1f
shr eax, cl
xor edx, ebp
and edi, edx
mov edx, dword [esp + 0x2c]
and edi, edx
and eax, ebp
xor eax, edx
add edi, eax
jns 0x647bcf
xor edi, edi
jmp 0x647bd9
mov eax, dword [esp + 0x28]
cmp edi, eax
jle 0x647bd9
mov edi, eax
fld dword [esp + 0x4c]
fsub dword [esi + 0xc0]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x20]
mov eax, dword [esp + 0x20]
mov ecx, eax
and eax, 0x7fffffff
mov ebp, eax
mov dword [esp + 0x20], eax
sar ecx, 0x1f
sar ebp, 0x17
mov dword [esp + 0x44], ecx
sub ebp, 0x7f
mov ecx, 0x1f
mov edx, ebp
sub ecx, ebp
mov ebp, 1
shl ebp, cl
and eax, 0x7fffff
mov dword [esp + 0x2c], ecx
mov ecx, eax
sar edx, 0x1f
dec ebp
shl ecx, 8
and ebp, ecx
mov ecx, dword [esp + 0x20]
neg ebp
sbb ebp, ebp
or eax, 0xff800000
inc ebp
dec ecx
not edx
sar ecx, 0x1f
xor ecx, edx
and ebp, ecx
mov ecx, dword [esp + 0x44]
and ebp, ecx
mov ecx, dword [esp + 0x2c]
shl eax, 8
shr eax, cl
and eax, edx
mov edx, dword [esp + 0x44]
xor eax, edx
add ebp, eax
jns 0x647c66
xor ebp, ebp
jmp 0x647c70
mov eax, dword [esp + 0x58]
cmp ebp, eax
jle 0x647c70
mov ebp, eax
mov eax, 1
or ecx, 0xffffffff
cmp ebx, edi
mov dword [esp + 0x40], eax
jle 0x647c84
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x5c]
cmp eax, ebp
jle 0x647c94
mov dword [esp + 0x44], ecx
mov eax, edi
sub eax, ebx
cdq
xor eax, edx
sub eax, edx
mov dword [esp + 0x60], eax
mov eax, ebp
mov ebp, dword [esp + 0x5c]
sub eax, ebp
cdq
xor eax, edx
sub eax, edx
mov edx, dword [esp + 0x40]
mov dword [esp + 0x7c], eax
xor eax, eax
cmp edx, eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x20], eax
jle 0x647cc8
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x44], eax
jle 0x647cd2
mov dword [esp + 0x20], ecx
mov edx, dword [esp + 0x158]
mov byte [esp + 0x1f], 0
fld dword [esp + 0x98]
mov eax, dword [edx]
mov byte [esp + 0x27], 0
fcomp dword [0x7cd7b4]
mov cl, byte [eax]
mov dword [esp + 0x64], ebx
mov byte [esp + 0xe4], cl
mov edx, dword [eax + 4]
mov dword [esp + 0xe8], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xec], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0xf0], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0xf4], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0xf8], edx
mov cl, byte [eax + 0x18]
mov byte [esp + 0xfc], cl
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x100], edx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x104], ecx
mov edx, dword [eax + 0x24]
mov dword [esp + 0x108], edx
mov cl, byte [eax]
mov byte [esp + 0x12c], cl
mov edx, dword [eax + 4]
mov dword [esp + 0x130], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x134], ecx
mov edx, dword [eax + 0xc]
mov dword [esp + 0x138], edx
mov ecx, dword [eax + 0x10]
mov dword [esp + 0x13c], ecx
mov edx, dword [eax + 0x14]
mov dword [esp + 0x140], edx
mov cl, byte [eax + 0x18]
mov byte [esp + 0x144], cl
mov edx, dword [eax + 0x1c]
mov dword [esp + 0x148], edx
mov ecx, dword [eax + 0x20]
mov dword [esp + 0x14c], ecx
mov edx, dword [eax + 0x24]
fnstsw ax
mov dword [esp + 0x150], edx
mov dword [esp + 0x68], ebp
test ah, 0x40
mov dword [esp + 0x70], edi
mov dword [esp + 0x74], edi
jne 0x6480d6
fld dword [esi + 0xbc]
fld dword [esp + 0x34]
mov eax, dword [esi + 0xc8]
fcomp st(1)
mov dword [esp + 0x14], eax
fnstsw ax
test ah, 1
je 0x647df6
fstp dword [esp + 0x14]
jmp 0x647e19
fstp st(0)
fld dword [esp + 0x34]
fcomp dword [esp + 0x14]
fnstsw ax
test ah, 0x41
jne 0x647e11
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x14], ecx
jmp 0x647e19
mov edx, dword [esp + 0x34]
mov dword [esp + 0x14], edx
fld dword [esi + 0xbc]
fld dword [esp + 0x48]
mov eax, dword [esi + 0xc8]
fcomp st(1)
mov dword [esp + 0x10], eax
fnstsw ax
test ah, 1
jne 0x647e51
fstp st(0)
fld dword [esp + 0x48]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x647e4d
fld dword [esp + 0x10]
jmp 0x647e51
fld dword [esp + 0x48]
fld st(0)
fsub dword [esp + 0x34]
mov ecx, 0x1f
fdiv dword [esp + 0x98]
fmul dword [esp + 0x9c]
fadd dword [esp + 0x38]
fld dword [esp + 0x14]
fsub dword [esp + 0x34]
fdiv dword [esp + 0x98]
fmul dword [esp + 0x9c]
fadd dword [esp + 0x38]
fsub dword [esi + 0xc0]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x10]
mov eax, dword [esp + 0x10]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x10], eax
sar edx, 0x17
sub edx, 0x7f
and eax, 0x7fffff
mov edi, edx
sub ecx, edx
mov edx, 1
mov dword [esp + 0x18], ecx
shl edx, cl
mov ecx, eax
sar ebp, 0x1f
sar edi, 0x1f
dec edx
shl ecx, 8
and edx, ecx
mov ecx, dword [esp + 0x10]
neg edx
sbb edx, edx
or eax, 0xff800000
inc edx
dec ecx
not edi
sar ecx, 0x1f
xor ecx, edi
and edx, ecx
mov ecx, dword [esp + 0x18]
shl eax, 8
shr eax, cl
and edx, ebp
and eax, edi
xor eax, ebp
add edx, eax
jns 0x647f00
xor edx, edx
jmp 0x647f0a
mov eax, dword [esp + 0x58]
cmp edx, eax
jle 0x647f0a
mov edx, eax
fld dword [esp + 0x14]
fsub dword [esi + 0xbc]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, eax
and eax, 0x7fffffff
sar ecx, 0x1f
mov edi, eax
mov dword [esp + 0x10], ecx
sar eax, 0x17
sub eax, 0x7f
mov ecx, 0x1f
mov ebp, eax
sub ecx, eax
mov eax, 1
mov dword [esp + 0x18], edi
shl eax, cl
and edi, 0x7fffff
mov dword [esp + 0x14], ecx
mov ecx, edi
sar ebp, 0x1f
dec eax
shl ecx, 8
and eax, ecx
mov ecx, dword [esp + 0x18]
neg eax
sbb eax, eax
or edi, 0xff800000
inc eax
dec ecx
not ebp
sar ecx, 0x1f
xor ecx, ebp
and eax, ecx
mov ecx, dword [esp + 0x10]
and eax, ecx
mov ecx, dword [esp + 0x14]
shl edi, 8
shr edi, cl
and edi, ebp
mov ebp, dword [esp + 0x10]
xor edi, ebp
add eax, edi
jns 0x647f99
xor eax, eax
jmp 0x647fa3
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jle 0x647fa3
mov eax, ecx
fsub dword [esi + 0xc0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov ecx, 0x1f
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
sar eax, 0x17
sub eax, 0x7f
mov dword [esp + 0x18], edx
mov edi, eax
sub ecx, eax
mov eax, 1
and edx, 0x7fffff
shl eax, cl
mov dword [esp + 0x10], ecx
mov ecx, edx
sar ebp, 0x1f
sar edi, 0x1f
dec eax
shl ecx, 8
and eax, ecx
mov ecx, dword [esp + 0x18]
neg eax
sbb eax, eax
or edx, 0xff800000
inc eax
dec ecx
not edi
sar ecx, 0x1f
xor ecx, edi
and eax, ecx
mov ecx, dword [esp + 0x10]
shl edx, 8
shr edx, cl
and eax, ebp
and edx, edi
xor edx, ebp
add eax, edx
jns 0x64802a
xor eax, eax
jmp 0x648034
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jle 0x648034
mov eax, ecx
fsub dword [esi + 0xbc]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov ecx, dword [esp + 0x18]
mov edx, ecx
and ecx, 0x7fffffff
sar edx, 0x1f
mov dword [esp + 0x10], edx
mov edx, ecx
sar edx, 0x17
mov dword [esp + 0x18], ecx
mov edi, ecx
sub edx, 0x7f
mov ecx, 0x1f
mov ebp, edx
sub ecx, edx
mov edx, 1
and edi, 0x7fffff
shl edx, cl
mov dword [esp + 0x14], ecx
mov ecx, edi
sar ebp, 0x1f
shl ecx, 8
dec edx
and edx, ecx
mov ecx, dword [esp + 0x18]
neg edx
sbb edx, edx
or edi, 0xff800000
inc edx
dec ecx
not ebp
sar ecx, 0x1f
xor ecx, ebp
and edx, ecx
mov ecx, dword [esp + 0x10]
and edx, ecx
mov ecx, dword [esp + 0x14]
shl edi, 8
shr edi, cl
and edi, ebp
mov ebp, dword [esp + 0x10]
xor edi, ebp
add edx, edi
jns 0x6480c5
xor edx, edx
jmp 0x6483ef
mov ecx, dword [esp + 0x28]
cmp edx, ecx
jle 0x6483ef
jmp 0x6483ed
fld dword [esp + 0x9c]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x6483f7
fld dword [esi + 0xc0]
fld dword [esp + 0x38]
mov edx, dword [esi + 0xcc]
fcomp st(1)
mov dword [esp + 0x10], edx
fnstsw ax
test ah, 1
je 0x648111
fstp dword [esp + 0x14]
jmp 0x648134
fstp st(0)
fld dword [esp + 0x38]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x64812c
mov eax, dword [esp + 0x10]
mov dword [esp + 0x14], eax
jmp 0x648134
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x14], ecx
fld dword [esi + 0xc0]
fld dword [esp + 0x4c]
mov edx, dword [esi + 0xcc]
fcomp st(1)
mov dword [esp + 0x10], edx
fnstsw ax
test ah, 1
jne 0x64816c
fstp st(0)
fld dword [esp + 0x4c]
fcomp dword [esp + 0x10]
fnstsw ax
test ah, 0x41
jne 0x648168
fld dword [esp + 0x10]
jmp 0x64816c
fld dword [esp + 0x4c]
fld dword [esp + 0x14]
fsub dword [esp + 0x38]
mov ecx, 0x1f
fdiv dword [esp + 0x9c]
fmul dword [esp + 0x98]
fadd dword [esp + 0x34]
fld st(1)
fsub dword [esp + 0x38]
fdiv dword [esp + 0x9c]
fmul dword [esp + 0x98]
fadd dword [esp + 0x34]
fstp dword [esp + 0x54]
fld dword [esp + 0x14]
fsub dword [esi + 0xc0]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
mov dword [esp + 0x18], eax
sar edx, 0x17
sub edx, 0x7f
and eax, 0x7fffff
mov edi, edx
sub ecx, edx
mov edx, 1
mov dword [esp + 0x10], ecx
shl edx, cl
mov ecx, eax
sar ebp, 0x1f
sar edi, 0x1f
dec edx
shl ecx, 8
and edx, ecx
mov ecx, dword [esp + 0x18]
neg edx
sbb edx, edx
or eax, 0xff800000
inc edx
dec ecx
not edi
sar ecx, 0x1f
xor ecx, edi
and edx, ecx
mov ecx, dword [esp + 0x10]
shl eax, 8
shr eax, cl
and edx, ebp
and eax, edi
xor eax, ebp
add edx, eax
jns 0x648223
xor edx, edx
jmp 0x64822d
mov eax, dword [esp + 0x58]
cmp edx, eax
jle 0x64822d
mov edx, eax
fsub dword [esi + 0xbc]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ecx, eax
and eax, 0x7fffffff
sar ecx, 0x1f
mov edi, eax
mov dword [esp + 0x10], ecx
sar eax, 0x17
sub eax, 0x7f
mov ecx, 0x1f
mov ebp, eax
sub ecx, eax
mov eax, 1
mov dword [esp + 0x18], edi
shl eax, cl
and edi, 0x7fffff
mov dword [esp + 0x14], ecx
mov ecx, edi
sar ebp, 0x1f
dec eax
shl ecx, 8
and eax, ecx
mov ecx, dword [esp + 0x18]
neg eax
sbb eax, eax
or edi, 0xff800000
inc eax
dec ecx
not ebp
sar ecx, 0x1f
xor ecx, ebp
and eax, ecx
mov ecx, dword [esp + 0x10]
and eax, ecx
mov ecx, dword [esp + 0x14]
shl edi, 8
shr edi, cl
and edi, ebp
mov ebp, dword [esp + 0x10]
xor edi, ebp
add eax, edi
jns 0x6482b8
xor eax, eax
jmp 0x6482c2
mov ecx, dword [esp + 0x28]
cmp eax, ecx
jle 0x6482c2
mov eax, ecx
fsub dword [esi + 0xc0]
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], edx
mov ecx, 0x1f
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x18]
mov eax, dword [esp + 0x18]
mov ebp, eax
and eax, 0x7fffffff
mov edx, eax
sar eax, 0x17
sub eax, 0x7f
mov dword [esp + 0x18], edx
mov edi, eax
sub ecx, eax
mov eax, 1
and edx, 0x7fffff
shl eax, cl
mov dword [esp + 0x10], ecx
mov ecx, edx
sar ebp, 0x1f
sar edi, 0x1f
dec eax
shl ecx, 8
and eax, ecx
mov ecx, dword [esp + 0x18]
neg eax
sbb eax, eax
or edx, 0xff800000
inc eax
dec ecx
not edi
sar ecx, 0x1f
xor ecx, edi
and eax, ecx
mov ecx, dword [esp + 0x10]
shl edx, 8
shr edx, cl
and eax, ebp
and edx, edi
xor edx, ebp
add eax, edx
jns 0x648349
xor eax, eax
jmp 0x648353
mov ecx, dword [esp + 0x58]
cmp eax, ecx
jle 0x648353
mov eax, ecx
fld dword [esp + 0x54]
fsub dword [esi + 0xbc]
fdiv dword [esi + 0xa8]
fstp dword [esp + 0x54]
mov ecx, dword [esp + 0x54]
mov edx, ecx
and ecx, 0x7fffffff
sar edx, 0x1f
mov dword [esp + 0x10], edx
mov edx, ecx
sar edx, 0x17
mov dword [esp + 0x54], ecx
mov edi, ecx
sub edx, 0x7f
mov ecx, 0x1f
mov ebp, edx
sub ecx, edx
mov edx, 1
and edi, 0x7fffff
shl edx, cl
mov dword [esp + 0x18], ecx
mov ecx, edi
sar ebp, 0x1f
shl ecx, 8
dec edx
and edx, ecx
mov ecx, dword [esp + 0x54]
neg edx
sbb edx, edx
or edi, 0xff800000
inc edx
dec ecx
not ebp
sar ecx, 0x1f
xor ecx, ebp
and edx, ecx
mov ecx, dword [esp + 0x10]
and edx, ecx
mov ecx, dword [esp + 0x18]
shl edi, 8
shr edi, cl
and edi, ebp
mov ebp, dword [esp + 0x10]
xor edi, ebp
add edx, edi
jns 0x6483e5
xor edx, edx
jmp 0x6483ef
mov ecx, dword [esp + 0x28]
cmp edx, ecx
jle 0x6483ef
mov edx, ecx
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], eax
mov eax, dword [esi + 0x9c]
mov ecx, dword [esp + 0x64]
mov edi, eax
imul edi, dword [esp + 0x68]
fld dword [esp + 0x88]
fcomp dword [esp + 0x94]
add edi, ecx
lea ecx, [eax + edi]
fnstsw ax
test ah, 1
je 0x64842b
fld dword [esp + 0x88]
jmp 0x648432
fld dword [esp + 0x94]
fld dword [esp + 0x88]
fcomp dword [esp + 0x94]
fnstsw ax
test ah, 0x41
jne 0x648454
mov edx, dword [esp + 0x88]
mov dword [esp + 0x28], edx
jmp 0x64845f
mov eax, dword [esp + 0x94]
mov dword [esp + 0x28], eax
mov edx, dword [esi + 0x8c]
lea eax, [edi + edi*2]
fcom dword [edx + eax*4 + 8]
lea ebp, [edx + eax*4]
fnstsw ax
test ah, 0x41
jne 0x6484a8
lea eax, [edi + edi*2 + 3]
fcom dword [edx + eax*4 + 8]
fnstsw ax
test ah, 0x41
jne 0x6484a8
lea eax, [ecx + ecx*2 + 3]
fcom dword [edx + eax*4 + 8]
fnstsw ax
test ah, 0x41
jne 0x6484a8
lea eax, [ecx + ecx*2]
fcomp dword [edx + eax*4 + 8]
fnstsw ax
test ah, 0x41
je 0x648656
jmp 0x6484aa
fstp st(0)
fld dword [ebp + 8]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x6484f4
lea eax, [edi + edi*2 + 3]
fld dword [edx + eax*4 + 8]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x6484f4
lea eax, [ecx + ecx*2 + 3]
fld dword [edx + eax*4 + 8]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
jne 0x6484f4
lea eax, [ecx + ecx*2]
fld dword [edx + eax*4 + 8]
fcomp dword [esp + 0x28]
fnstsw ax
test ah, 0x41
je 0x648656
lea eax, [esp + 0x48]
mov dword [esp + 0x48], 0
mov dword [esp + 0x11c], eax
lea eax, [esp + 0x64]
mov dword [esp + 0x10c], eax
lea eax, [ecx + ecx*2 + 3]
lea ecx, [ecx + ecx*2]
mov dword [esp + 0x4c], 0
lea eax, [edx + eax*4]
mov dword [esp + 0x50], 0
mov dword [esp + 0x124], eax
mov dword [esp + 0x110], eax
lea ecx, [edx + ecx*4]
lea eax, [edi + edi*2 + 3]
mov dword [esp + 0x128], ecx
mov dword [esp + 0x64], 0
lea ecx, [edx + eax*4]
mov dword [esp + 0x68], 0
mov dword [esp + 0x118], ecx
lea ecx, [esp + 0x11c]
mov dword [esp + 0x6c], 0
mov dword [esp + 0x120], ebp
mov dword [esp + 0x114], ebp
call fcn.006477b0
lea ecx, [esp + 0x10c]
call fcn.006477b0
lea edx, [esp + 0xe4]
lea eax, [esp + 0x11c]
push edx
lea ecx, [esp + 0x84]
push eax
push ecx
call fcn.00601dc0
mov byte [esp + 0x3f], al
lea edx, [esp + 0xf0]
lea eax, [esp + 0x118]
push edx
lea ecx, [esp + 0x90]
push eax
push ecx
call fcn.00601dc0
mov cl, byte [esp + 0x4b]
add esp, 0x18
or cl, al
je 0x648656
mov edx, dword [esi + 0xe8]
test edx, edx
jle 0x648849
fld dword [0x7cd7b4]
xor ebp, ebp
xor ecx, ecx
test edx, edx
jle 0x648631
mov ebx, dword [esi + 0xdc]
mov eax, dword [ebx]
mov eax, dword [eax + 8]
fld dword [eax + edi*4]
fst dword [esp + 0x14]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x648629
fld dword [esp + 0x14]
fcomp dword [0x7cd794]
fnstsw ax
test ah, 0x40
jne 0x648629
fstp st(0)
fld dword [esp + 0x14]
mov ebp, ecx
inc ecx
add ebx, 4
cmp ecx, edx
jl 0x6485fb
mov ecx, dword [esi + 0xdc]
fstp st(0)
mov edx, dword [ecx + ebp*4]
mov eax, dword [edx + 0x10]
test eax, eax
je 0x648849
mov eax, dword [eax + 0x18]
mov dword [esp + 0xf8], eax
jmp 0x648849
fld dword [esp + 0x98]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x64872e
mov ebp, dword [esp + 0x60]
mov dword [esp + 0x28], ebx
test ebp, ebp
jl 0x64872e
mov ecx, dword [esp + 0x2c]
add ebx, ecx
fild dword [esp + 0x28]
fmul dword [esi + 0xa8]
fadd dword [esi + 0xbc]
fsub dword [esp + 0x34]
fdiv dword [esp + 0x98]
fst dword [esp + 0x14]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 1
jne 0x64870e
fld dword [esp + 0x14]
fcomp dword [0x7cd794]
fnstsw ax
test ah, 0x41
je 0x64870e
fld dword [esp + 0x9c]
fmul dword [esp + 0x14]
push 0
mov ecx, esi
fadd dword [esp + 0x3c]
fstp dword [esp + 0x64]
mov edx, dword [esp + 0x64]
push edx
call fcn.006489d0
mov edi, eax
mov ecx, esi
push edi
push ebx
call fcn.00648a80
test al, al
je 0x64870e
lea eax, [esp + 0xe4]
lea ecx, [esp + 0x80]
push eax
push edi
push ebx
push ecx
mov ecx, esi
call fcn.00646fa0
test al, al
jne 0x648729
mov eax, dword [esp + 0x40]
mov edx, dword [esp + 0x28]
dec ebp
add edx, eax
add ebx, eax
mov dword [esp + 0x28], edx
test ebp, ebp
jge 0x648684
jmp 0x64872e
mov byte [esp + 0x1f], 1
fld dword [esp + 0x9c]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 0x40
jne 0x648810
mov ebp, dword [esp + 0x7c]
mov edi, dword [esp + 0x5c]
test ebp, ebp
mov dword [esp + 0x14], edi
jl 0x648810
mov edx, dword [esp + 0x20]
add edi, edx
fild dword [esp + 0x14]
fmul dword [esi + 0xa8]
fadd dword [esi + 0xc0]
fsub dword [esp + 0x38]
fdiv dword [esp + 0x9c]
fst dword [esp + 0x40]
fcomp dword [0x7cd7b4]
fnstsw ax
test ah, 1
jne 0x6487f0
fld dword [esp + 0x40]
fcomp dword [0x7cd794]
fnstsw ax
test ah, 0x41
je 0x6487f0
fld dword [esp + 0x98]
fmul dword [esp + 0x40]
push 0
mov ecx, esi
fadd dword [esp + 0x38]
fstp dword [esp + 0x80]
mov eax, dword [esp + 0x80]
push eax
call fcn.00648920
mov ebx, eax
push edi
push ebx
mov ecx, esi
call fcn.00648a80
test al, al
je 0x6487f0
lea ecx, [esp + 0x12c]
lea edx, [esp + 0x80]
push ecx
push edi
push ebx
push edx
mov ecx, esi
call fcn.00646fa0
test al, al
jne 0x64880b
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x14]
dec ebp
add edx, eax
add edi, eax
mov dword [esp + 0x14], edx
test ebp, ebp
jge 0x648760
jmp 0x648810
mov byte [esp + 0x27], 1
mov al, byte [esp + 0x1f]
test al, al
jne 0x64884e
mov al, byte [esp + 0x27]
test al, al
jne 0x64884e
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
lea eax, [esp + 0xe4]
push eax
push ecx
lea eax, [esp + 0x88]
push edx
push eax
mov ecx, esi
call fcn.00646fa0
test al, al
je 0x64890c
mov byte [esp + 0x1f], 1
mov al, byte [esp + 0x1f]
mov bl, 1
test al, al
je 0x6488e7
mov al, byte [esp + 0x27]
test al, al
je 0x6488c2
fld dword [esp + 0xe8]
fcomp dword [esp + 0x130]
fnstsw ax
test bl, ah
je 0x64889d
mov edx, dword [esp + 0x158]
lea ecx, [esp + 0xe4]
push ecx
mov ecx, dword [edx]
call fcn.00648ab0
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
add esp, 0x144
ret 4
mov ecx, dword [esp + 0x158]
lea eax, [esp + 0x12c]
push eax
mov ecx, dword [ecx]
call fcn.00648ab0
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
add esp, 0x144
ret 4
mov eax, dword [esp + 0x158]
lea edx, [esp + 0xe4]
push edx
mov ecx, dword [eax]
call fcn.00648ab0
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
add esp, 0x144
ret 4
mov edx, dword [esp + 0x158]
lea ecx, [esp + 0x12c]
push ecx
mov ecx, dword [edx]
call fcn.00648ab0
pop edi
pop esi
mov al, bl
pop ebp
pop ebx
add esp, 0x144
ret 4
pop edi
pop esi
pop ebp
xor al, al
pop ebx
add esp, 0x144
ret 4