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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1f4
push ebx
mov ebx, dword [ebp + 8]
xor eax, eax
push esi
test ebx, ebx
setne al
test eax, eax
push edi
mov dword [esp + 0x12c], eax
jne 0x4560be
call fcn.0045d580
mov edi, eax
mov dword [esp + 0x94], edi
call fcn.0045d580
mov esi, eax
mov eax, dword [0x473964]
add eax, 0x10
mov dword [esp + 0x4c], esi
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0xa0]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0xc8]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0x98]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0x30]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0x10]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0x38]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0xb0]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0xb8]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
mov eax, dword [0x473964]
fstp qword [esp + 0x68]
add eax, 0x10
mov dword [0x473964], eax
call dword [eax - 0x10]
fstp qword [esp + 0x88]
cmp edi, 2
jbe 0x455e19
xor edi, edi
mov dword [esp + 0x94], edi
cmp esi, 4
jbe 0x455e24
xor esi, esi
mov dword [esp + 0x4c], esi
fld qword [esp + 0x68]
fcomp qword [0x46e2f8]
fnstsw ax
test ah, 0x41
jne 0x455e56
fld qword [esp + 0x68]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x455e56
mov dword [esp + 0x68], 0
mov dword [esp + 0x6c], 0x3ff00000
fld qword [esp + 0x88]
fcomp qword [0x46e2f8]
fnstsw ax
test ah, 0x41
jne 0x455e94
fld qword [esp + 0x88]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x455e94
mov dword [esp + 0x88], 0
mov dword [esp + 0x8c], 0x3ff00000
mov eax, dword [0x4711dc]
mov ecx, dword [0x4724ac]
cmp eax, ecx
jae 0x457668
mov ecx, dword [0x4724a8]
cmp byte [ecx + eax], 0
je 0x457668
push eax
call fcn.004033b0
mov eax, dword [0x4711dc]
add esp, 4
mov edx, eax
shl edx, 4
add edx, eax
shl edx, 4
sub edx, eax
mov eax, dword [0x4724a4]
lea ebx, [eax + edx*4]
mov eax, dword [eax + edx*4 + 0x320]
test eax, eax
jle 0x457668
mov eax, dword [ebx + 0x324]
test eax, eax
je 0x457668
mov eax, dword [ebx + 0x358]
test eax, eax
jle 0x457668
mov eax, dword [ebx + 0x35c]
test eax, eax
je 0x457668
mov eax, dword [ebx + 0x328]
test eax, eax
je 0x457668
cmp dword [ebx], 4
je 0x457668
mov eax, dword [0x4732cc]
test edi, edi
jle 0x455f41
mov ecx, dword [ebx + eax*4 + 0x3a4]
test ecx, ecx
jl 0x457668
cmp esi, 3
je 0x45607d
cmp esi, 4
jne 0x4560a4
fld qword [esp + 0x68]
fadd st(0), st(0)
fstp qword [esp + 0x68]
fld qword [esp + 0xb8]
fadd qword [0x46d3f8]
mov dword [ebx + eax*4 + 0x134], 1
mov ecx, dword [0x4732cc]
test edi, edi
mov dword [ebx + ecx*4 + 0x154], 2
fstp qword [esp + 0xb8]
jne 0x4560a4
mov edx, dword [ebx + 0x304]
test edx, edx
jne 0x455fb1
mov ecx, 0x98
call fcn.00435b70
mov edx, eax
mov dword [ebx + 0x304], edx
mov eax, dword [esp + 0xa0]
mov ecx, dword [esp + 0xa4]
mov dword [edx + 8], eax
mov eax, dword [esp + 0xc8]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0xcc]
mov dword [edx + 0x10], eax
mov eax, dword [esp + 0x98]
mov dword [edx + 0x14], ecx
mov ecx, dword [esp + 0x9c]
mov dword [edx + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [edx + 0x1c], ecx
mov ecx, dword [esp + 0x34]
mov dword [edx + 0x20], eax
mov eax, dword [esp + 0x10]
mov dword [edx + 0x24], ecx
mov ecx, dword [esp + 0x14]
mov dword [edx + 0x28], eax
mov eax, dword [esp + 0x38]
mov dword [edx + 0x2c], ecx
mov ecx, dword [esp + 0x3c]
mov dword [edx + 0x30], eax
mov eax, dword [esp + 0xb0]
mov dword [edx + 0x34], ecx
mov ecx, dword [esp + 0xb4]
mov dword [edx + 0x38], eax
mov eax, dword [esp + 0xb8]
mov dword [edx + 0x3c], ecx
mov ecx, dword [esp + 0xbc]
mov dword [edx + 0x40], eax
mov eax, dword [esp + 0x68]
mov dword [edx + 0x44], ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + 0x48], eax
mov eax, dword [esp + 0x88]
mov dword [edx + 0x4c], ecx
mov ecx, dword [esp + 0x8c]
mov dword [edx + 0x50], eax
mov dword [edx + 0x54], ecx
mov ecx, 0x10
xor eax, eax
lea edi, [edx + 0x58]
mov dword [edx], 0
mov dword [edx + 4], esi
rep stosd dword es:[edi], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fld qword [esp + 0x68]
fmul qword [0x46e2f0]
fstp qword [esp + 0x68]
fld qword [esp + 0xb0]
fadd qword [0x46d498]
fstp qword [esp + 0xb0]
jmp 0x455f5d
mov ecx, dword [ebx + 0x304]
call fcn.00435be0
mov dword [ebx + 0x304], 0
jmp 0x456184
mov eax, dword [ebx + 0x304]
mov edx, dword [eax + 8]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xa0], edx
mov edx, dword [eax + 0x10]
mov dword [esp + 0xa4], ecx
mov ecx, dword [eax + 0x14]
mov dword [esp + 0xc8], edx
mov edx, dword [eax + 0x18]
mov dword [esp + 0xcc], ecx
mov ecx, dword [eax + 0x1c]
mov dword [esp + 0x98], edx
mov edx, dword [eax + 0x20]
mov dword [esp + 0x9c], ecx
mov ecx, dword [eax + 0x24]
mov dword [esp + 0x30], edx
mov edx, dword [eax + 0x28]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x2c]
mov dword [esp + 0x10], edx
mov edx, dword [eax + 0x30]
mov dword [esp + 0x14], ecx
mov ecx, dword [eax + 0x34]
mov dword [esp + 0x38], edx
mov edx, dword [eax + 0x38]
mov edi, dword [eax]
mov esi, dword [eax + 4]
mov dword [esp + 0x3c], ecx
mov ecx, dword [eax + 0x3c]
mov dword [esp + 0xb0], edx
mov edx, dword [eax + 0x40]
mov dword [esp + 0xb4], ecx
mov ecx, dword [eax + 0x44]
mov dword [esp + 0xb8], edx
mov edx, dword [eax + 0x48]
mov dword [esp + 0xbc], ecx
mov ecx, dword [eax + 0x4c]
mov dword [esp + 0x68], edx
mov edx, dword [eax + 0x50]
mov eax, dword [eax + 0x54]
mov dword [esp + 0x94], edi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x88], edx
mov dword [esp + 0x8c], eax
cmp esi, 3
je 0x456192
cmp esi, 4
jne 0x45633e
mov ecx, dword [ebx]
mov eax, ebx
cmp ecx, 6
mov ecx, dword [0x4724a4]
jne 0x4561bb
mov eax, dword [eax + 8]
mov edx, eax
shl edx, 4
add edx, eax
shl edx, 4
sub edx, eax
lea eax, [ecx + edx*4]
mov edx, dword [ecx + edx*4]
cmp edx, 6
je 0x4561a1
fld dword [ecx + 0x730]
fsub dword [eax + 0x2f4]
fld dword [ecx + 0x734]
fsub dword [eax + 0x2f8]
fld dword [ecx + 0x738]
lea esi, [eax + 0x2c4]
mov eax, dword [esp + 0x12c]
test eax, eax
fsub dword [esi + 0x38]
fstp dword [esp + 0xe0]
je 0x4562cc
mov edx, dword [ebx + 0x304]
fld dword [esi]
fcomp dword [edx + 0x58]
add edx, 0x58
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 4]
fcomp dword [edx + 4]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 8]
fcomp dword [edx + 8]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x10]
fcomp dword [edx + 0x10]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x14]
fcomp dword [edx + 0x14]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x18]
fcomp dword [edx + 0x18]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x20]
fcomp dword [edx + 0x20]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x24]
fcomp dword [edx + 0x24]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esi + 0x28]
fcomp dword [edx + 0x28]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld st(1)
fcomp dword [edx + 0x30]
fnstsw ax
test ah, 0x40
je 0x4562a8
fcom dword [edx + 0x34]
fnstsw ax
test ah, 0x40
je 0x4562a8
fld dword [esp + 0xe0]
fcomp dword [edx + 0x38]
fnstsw ax
test ah, 0x40
jne 0x457664
mov eax, dword [esp + 0xe0]
mov ecx, 0x10
mov edi, edx
fld st(1)
rep movsd dword es:[edi], dword [esi]
fstp dword [edx + 0x30]
fstp dword [edx + 0x34]
mov edi, dword [esp + 0x94]
mov dword [edx + 0x38], eax
jmp 0x4562ce
fstp st(0)
cmp dword [esp + 0x4c], 3
jne 0x4562f2
fchs
fld dword [esp + 0xe0]
fchs
fpatan
fmul qword [0x46d498]
fadd qword [esp + 0x38]
fstp qword [esp + 0x38]
jmp 0x45633e
fld st(0)
fchs
fld dword [esp + 0xe0]
fchs
fpatan
fmul qword [0x46d4c0]
fadd qword [esp + 0x38]
fstp qword [esp + 0x38]
fmul dword [0x46e2e8]
fsubr qword [esp + 0xa0]
fstp qword [esp + 0xa0]
fld dword [esp + 0xe0]
fmul dword [0x46e2e8]
fsubr qword [esp + 0x98]
fstp qword [esp + 0x98]
mov ecx, ebx
mov dword [ebx + 0x28], 1
call fcn.004028f0
xor esi, esi
cmp edi, esi
jne 0x45637e
mov ecx, dword [0x4732cc]
cmp dword [ebx + ecx*4 + 0x338], esi
jne 0x4563c0
mov ecx, dword [ebx + 0x320]
shl ecx, 3
call fcn.00435b70
mov edx, dword [0x4732cc]
mov dword [ebx + edx*4 + 0x338], eax
jmp 0x4563c0
cmp dword [ebx + 0x330], esi
jne 0x45639a
mov ecx, dword [ebx + 0x320]
shl ecx, 2
call fcn.00435b70
mov dword [ebx + 0x330], eax
cmp dword [ebx + 0x334], esi
jne 0x4563b6
mov ecx, dword [ebx + 0x320]
shl ecx, 4
call fcn.00435b70
mov dword [ebx + 0x334], eax
mov dword [ebx + 0x32c], 0xffffffff
push ebx
call dword [0x471078]
mov eax, dword [ebx + 4]
push eax
call fcn.00403e50
add esp, 8
cmp edi, esi
mov dword [esp + 0x24], esi
mov dword [esp + 0x48], esi
mov dword [esp + 0xec], esi
jle 0x456436
mov eax, dword [0x4732cc]
mov edx, dword [0x472488]
push eax
mov eax, dword [ebx + eax*4 + 0x3a4]
lea ecx, [eax + eax*2]
lea ecx, [edx + ecx*8 + 4]
call fcn.00408ce0
mov eax, dword [0x4732cc]
mov edx, dword [0x472488]
mov eax, dword [ebx + eax*4 + 0x3a4]
lea ecx, [eax + eax*2]
mov eax, dword [edx + ecx*8 + 4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x1c]
mov eax, dword [eax + 0x30]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x48], edx
mov dword [esp + 0xec], eax
fld qword [esp + 0x38]
fchs
fsin
mov ecx, 0x10
mov esi, 0x470178
lea edi, [esp + 0x13c]
rep movsd dword es:[edi], dword [esi]
mov esi, 0x470178
lea edi, [esp + 0x180]
fld qword [esp + 0x38]
fcos
fst dword [esp + 0xac]
fld qword [esp + 0x10]
fchs
fsin
mov ecx, dword [esp + 0xac]
mov dword [esp + 0x164], ecx
mov ecx, 0x10
rep movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x84]
fld qword [esp + 0x10]
fcos
mov eax, dword [esp + 0x84]
mov dword [esp + 0x198], eax
fstp dword [esp + 0x70]
fld qword [esp + 0x30]
fchs
fsin
mov edx, dword [esp + 0x70]
mov dword [esp + 0x194], edx
mov ecx, edx
lea edx, [esp + 0x180]
mov dword [esp + 0x1a8], ecx
push edx
lea edx, [esp + 0x140]
lea ecx, [esp + 0x1c4]
fstp dword [esp + 0x78]
fld qword [esp + 0x34]
fcos
fstp dword [esp + 0x54]
fstp dword [esp + 0x140]
fld st(0)
fchs
fstp dword [esp + 0x148]
fstp dword [esp + 0x160]
fld dword [esp + 0x88]
fchs
fstp dword [esp + 0x1a8]
call fcn.00401e50
mov eax, dword [esp + 0x50]
mov ecx, 0x10
fld dword [esp + 0x74]
mov esi, 0x470178
lea edi, [esp + 0x180]
rep movsd dword es:[edi], dword [esi]
fchs
fstp dword [esp + 0x190]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x180], eax
mov edx, eax
lea eax, [esp + 0x180]
mov dword [esp + 0x184], ecx
mov dword [esp + 0x194], edx
push eax
lea edx, [esp + 0x1c4]
lea ecx, [esp + 0x140]
call fcn.00401e50
mov eax, dword [esp + 0x4c]
xor esi, esi
mov dword [esp + 0x108], esi
mov dword [esp + 0x10c], esi
mov dword [esp + 0x110], esi
mov dword [esp + 0x114], esi
mov dword [esp + 0x120], esi
mov dword [esp + 0x124], esi
mov dword [esp + 0xf8], esi
mov dword [esp + 0xfc], esi
mov dword [esp + 0x100], esi
mov dword [esp + 0x104], esi
mov dword [esp + 0xf0], esi
mov dword [esp + 0xf4], esi
cmp eax, 3
je 0x4565d6
cmp eax, 4
jne 0x456698
mov ecx, dword [ebx]
mov eax, ebx
cmp ecx, 6
jne 0x45664d
mov ecx, dword [ebx + 0x25c]
mov edx, dword [ebx + 0x260]
mov dword [esp + 0xf8], ecx
mov ecx, dword [ebx + 0x264]
mov dword [esp + 0xfc], edx
mov edx, dword [ebx + 0x268]
mov dword [esp + 0x100], ecx
mov ecx, dword [ebx + 0x26c]
mov dword [esp + 0x104], edx
mov edx, dword [ebx + 0x270]
mov dword [esp + 0xf0], ecx
mov ecx, dword [0x4724a4]
mov dword [esp + 0xf4], edx
mov eax, dword [eax + 8]
mov edx, eax
shl edx, 4
add edx, eax
shl edx, 4
sub edx, eax
lea eax, [ecx + edx*4]
mov edx, dword [ecx + edx*4]
cmp edx, 6
je 0x456633
fld qword [eax + 0x1d8]
fmul qword [0x46d9e8]
fdiv qword [eax + 0x1bc]
fstp qword [esp + 0x108]
fld qword [eax + 0x1e0]
fmul qword [0x46d9e8]
fdiv qword [eax + 0x1bc]
fstp qword [esp + 0x110]
fld qword [eax + 0x1e8]
fmul qword [0x46d9e8]
fdiv qword [eax + 0x1bc]
fstp qword [esp + 0x120]
mov eax, dword [ebx + 0x358]
test eax, eax
mov dword [esp + 0xac], eax
jle 0x4575d2
mov eax, dword [ebx + 0x35c]
mov edi, dword [esp + 0x4c]
mov ecx, dword [eax + esi*4]
mov edx, dword [eax + esi*4 + 4]
inc esi
mov dword [esp + 0x50], edx
mov edx, dword [ebx + 0x324]
inc esi
mov eax, dword [eax + esi*4]
inc esi
mov dword [esp + 0xc0], eax
cmp edi, 3
mov eax, edx
je 0x4566e1
cmp edi, 4
jne 0x4566e7
mov eax, dword [ebx + 0x328]
lea ecx, [ecx + ecx*2]
shl ecx, 2
cmp edi, 3
fld dword [ecx + eax]
fld dword [ecx + eax + 4]
fstp qword [esp + 0x30]
fld dword [ecx + eax + 8]
fstp qword [esp + 0x10]
je 0x45670e
cmp edi, 4
jne 0x4567d3
fld dword [ecx + edx]
fadd qword [esp + 0xf8]
fmul qword [esp + 0x108]
faddp st(1)
fld dword [ecx + edx + 4]
fadd qword [esp + 0x100]
fmul qword [esp + 0x110]
fadd qword [esp + 0x30]
fld dword [ecx + edx + 8]
fadd qword [esp + 0xf0]
fmul qword [esp + 0x120]
fadd qword [esp + 0x10]
fld dword [ebx + 0x2e8]
fmul st(1)
fld dword [ebx + 0x2d8]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x2c8]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x40]
fld dword [ebx + 0x2ec]
fmul st(1)
fld dword [ebx + 0x2dc]
fmul st(3)
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ecx
faddp st(1)
fld dword [ebx + 0x2cc]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x78]
fld dword [ebx + 0x2e4]
fmul st(1)
fld dword [ebx + 0x2d4]
fmul st(3)
mov edi, dword [esp + 0x7c]
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x4c]
faddp st(1)
fld dword [ebx + 0x2c4]
fmul st(4)
mov dword [esp + 0x10], ecx
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fsub qword [esp + 0xa0]
fld qword [esp + 0x30]
fsub qword [esp + 0xc8]
fld qword [esp + 0x10]
fsub qword [esp + 0x98]
fld dword [esp + 0x14c]
fmul st(2)
fld dword [esp + 0x15c]
fmul st(2)
mov ecx, dword [esp + 0x50]
faddp st(1)
fld dword [esp + 0x13c]
fmul st(4)
lea ecx, [ecx + ecx*2]
shl ecx, 2
faddp st(1)
cmp edi, 3
fstp qword [esp + 0x118]
fld dword [esp + 0x160]
fmul st(1)
fld dword [esp + 0x150]
fmul st(3)
faddp st(1)
fld dword [esp + 0x140]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x78]
fld dword [esp + 0x154]
fmul st(2)
fld dword [esp + 0x164]
fmul st(2)
faddp st(1)
fld dword [esp + 0x144]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x130]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [ecx + eax]
fld dword [ecx + eax + 4]
fstp qword [esp + 0x30]
fld dword [ecx + eax + 8]
fstp qword [esp + 0x10]
je 0x456890
cmp edi, 4
jne 0x45695e
fld dword [ecx + edx]
fadd qword [esp + 0xf8]
fmul qword [esp + 0x108]
faddp st(1)
fld dword [ecx + edx + 4]
fadd qword [esp + 0x100]
fmul qword [esp + 0x110]
fadd qword [esp + 0x30]
fld dword [ecx + edx + 8]
fadd qword [esp + 0xf0]
fmul qword [esp + 0x120]
fadd qword [esp + 0x10]
fld dword [ebx + 0x2e8]
fmul st(1)
fld dword [ebx + 0x2d8]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x2c8]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x40]
fld dword [ebx + 0x2ec]
fmul st(1)
fld dword [ebx + 0x2dc]
fmul st(3)
mov edi, dword [esp + 0x44]
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x34], edi
mov dword [esp + 0x30], ecx
faddp st(1)
fld dword [ebx + 0x2cc]
fmul st(4)
faddp st(1)
fstp qword [esp + 0xd0]
fld dword [ebx + 0x2e4]
fmul st(1)
fld dword [ebx + 0x2d4]
fmul st(3)
mov edi, dword [esp + 0xd4]
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x14], edi
mov edi, dword [esp + 0x4c]
faddp st(1)
fld dword [ebx + 0x2c4]
fmul st(4)
mov dword [esp + 0x10], ecx
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fsub qword [esp + 0xa0]
fld qword [esp + 0x30]
fsub qword [esp + 0xc8]
fld qword [esp + 0x10]
fsub qword [esp + 0x98]
fld dword [esp + 0x14c]
fmul st(2)
fld dword [esp + 0x15c]
fmul st(2)
mov ecx, dword [esp + 0xc0]
faddp st(1)
fld dword [esp + 0x13c]
fmul st(4)
lea ecx, [ecx + ecx*2]
shl ecx, 2
faddp st(1)
cmp edi, 3
fstp qword [esp + 0x50]
fld dword [esp + 0x160]
fmul st(1)
fld dword [esp + 0x150]
fmul st(3)
faddp st(1)
fld dword [esp + 0x140]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x40]
fld dword [esp + 0x154]
fmul st(2)
fld dword [esp + 0x164]
fmul st(2)
faddp st(1)
fld dword [esp + 0x144]
fmul st(4)
faddp st(1)
fstp qword [esp + 0xd0]
fstp st(0)
fstp st(0)
fstp st(0)
fld dword [ecx + eax]
fld dword [ecx + eax + 4]
fstp qword [esp + 0x30]
fld dword [ecx + eax + 8]
fstp qword [esp + 0x10]
je 0x456a1b
cmp edi, 4
jne 0x456aee
fld dword [ecx + edx]
fadd qword [esp + 0xf8]
fmul qword [esp + 0x108]
faddp st(1)
fld dword [ecx + edx + 4]
fadd qword [esp + 0x100]
fmul qword [esp + 0x110]
fadd qword [esp + 0x30]
fld dword [ecx + edx + 8]
fadd qword [esp + 0xf0]
fmul qword [esp + 0x120]
fadd qword [esp + 0x10]
fld dword [ebx + 0x2e8]
fmul st(1)
fld dword [ebx + 0x2d8]
fmul st(3)
faddp st(1)
fld dword [ebx + 0x2c8]
fmul st(4)
faddp st(1)
fstp qword [esp + 0xc0]
fld dword [ebx + 0x2ec]
fmul st(1)
fld dword [ebx + 0x2dc]
fmul st(3)
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x30], edx
mov dword [esp + 0x34], eax
faddp st(1)
fld dword [ebx + 0x2cc]
fmul st(4)
faddp st(1)
fstp qword [esp + 0xd8]
fld dword [ebx + 0x2e4]
fmul st(1)
fld dword [ebx + 0x2d4]
fmul st(3)
mov ecx, dword [esp + 0xd8]
mov edx, dword [esp + 0xdc]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
faddp st(1)
fld dword [ebx + 0x2c4]
fmul st(4)
faddp st(1)
fstp st(3)
fstp st(0)
fstp st(0)
fsub qword [esp + 0xa0]
fld qword [esp + 0x30]
fsub qword [esp + 0xc8]
fld qword [esp + 0x10]
fsub qword [esp + 0x98]
fld dword [esp + 0x14c]
fmul st(2)
fld dword [esp + 0x15c]
fmul st(2)
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x50]
mov dword [esp + 0x38], eax
faddp st(1)
fld dword [esp + 0x13c]
fmul st(4)
mov eax, dword [esp + 0x54]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x28], edx
faddp st(1)
mov edx, dword [esp + 0x44]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
fstp qword [esp + 0x10]
fld dword [esp + 0x160]
fmul st(1)
fld dword [esp + 0x150]
fmul st(3)
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], eax
cmp edi, 1
faddp st(1)
fld dword [esp + 0x140]
fmul st(4)
mov dword [esp + 0x1c], ecx
faddp st(1)
fstp qword [esp + 0xc0]
fld dword [esp + 0x154]
fmul st(2)
fld dword [esp + 0x164]
fmul st(2)
mov edx, dword [esp + 0xc0]
mov eax, dword [esp + 0xc4]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], eax
faddp st(1)
fld dword [esp + 0x144]
fmul st(4)
faddp st(1)
fstp qword [esp + 0x30]
fstp st(0)
fstp st(0)
fstp st(0)
fld qword [esp + 0x118]
je 0x456d37
jle 0x456fe9
cmp edi, 4
jg 0x456fe9
fstp st(0)
fld qword [esp + 0x78]
fld qword [esp + 0x130]
fmul qword [esp + 0x130]
fld qword [esp + 0x118]
fmul qword [esp + 0x118]
faddp st(1)
fsqrt
fpatan
fdiv qword [0x46e158]
fst qword [esp + 0x38]
fcomp qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456c43
mov dword [esp + 0x38], 0xb22d0e56
mov dword [esp + 0x3c], 0xbfdfef9d
jmp 0x456c64
fld qword [esp + 0x38]
fcomp qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456c64
mov dword [esp + 0x38], 0xb22d0e56
mov dword [esp + 0x3c], 0x3fdfef9d
fld qword [esp + 0x40]
fld qword [esp + 0xd0]
fmul qword [esp + 0xd0]
fld qword [esp + 0x50]
fmul qword [esp + 0x50]
faddp st(1)
fsqrt
fpatan
fdiv qword [0x46e158]
fst qword [esp + 0x58]
fcomp qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456cad
mov dword [esp + 0x58], 0xb22d0e56
mov dword [esp + 0x5c], 0xbfdfef9d
jmp 0x456cce
fld qword [esp + 0x58]
fcomp qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456cce
mov dword [esp + 0x58], 0xb22d0e56
mov dword [esp + 0x5c], 0x3fdfef9d
fld qword [esp + 0xc0]
fld qword [esp + 0x30]
fmul qword [esp + 0x30]
fld qword [esp + 0x10]
fmul qword [esp + 0x10]
faddp st(1)
fsqrt
fpatan
fdiv qword [0x46e158]
fst qword [esp + 0x60]
fcomp qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456d14
mov dword [esp + 0x60], 0xb22d0e56
mov dword [esp + 0x64], 0xbfdfef9d
jmp 0x456d39
fld qword [esp + 0x60]
fcomp qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456d39
mov dword [esp + 0x60], 0xb22d0e56
mov dword [esp + 0x64], 0x3fdfef9d
jmp 0x456d39
fstp st(0)
fld qword [esp + 0x118]
fld qword [esp + 0x130]
fchs
fpatan
fdiv qword [0x46e160]
fcom qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456d68
fstp st(0)
fld qword [0x46e2e0]
jmp 0x456d7d
fcom qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456d7d
fstp st(0)
fld qword [0x46e2d8]
fld qword [esp + 0x50]
fld qword [esp + 0xd0]
fchs
fpatan
fdiv qword [0x46e160]
fst qword [esp + 0x28]
fcomp qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456db5
mov dword [esp + 0x28], 0xb22d0e56
mov dword [esp + 0x2c], 0xbfdfef9d
jmp 0x456dd6
fld qword [esp + 0x28]
fcomp qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456dd6
mov dword [esp + 0x28], 0xb22d0e56
mov dword [esp + 0x2c], 0x3fdfef9d
fld qword [esp + 0x10]
fld qword [esp + 0x30]
fchs
fpatan
fdiv qword [0x46e160]
fst qword [esp + 0x18]
fcomp qword [0x46e2e0]
fnstsw ax
test ah, 1
je 0x456e0b
mov dword [esp + 0x18], 0xb22d0e56
mov dword [esp + 0x1c], 0xbfdfef9d
jmp 0x456e2c
fld qword [esp + 0x18]
fcomp qword [0x46e2d8]
fnstsw ax
test ah, 0x41
jne 0x456e2c
mov dword [esp + 0x18], 0xb22d0e56
mov dword [esp + 0x1c], 0x3fdfef9d
fld qword [esp + 0x130]
fabs
fld qword [esp + 0x118]
fabs
faddp st(1)
fst qword [esp + 0xd8]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456e64
fstp st(0)
fld qword [esp + 0x18]
fadd qword [esp + 0x28]
fmul qword [0x46d498]
fld qword [esp + 0xd0]
fabs
fld qword [esp + 0x50]
fabs
faddp st(1)
fst qword [esp + 0x40]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456e96
fld qword [esp + 0x18]
fadd st(1)
fmul qword [0x46d498]
fstp qword [esp + 0x28]
fld qword [esp + 0x30]
fabs
fld qword [esp + 0x10]
fabs
faddp st(1)
fst qword [esp + 0x78]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456ec5
fld qword [esp + 0x28]
fadd st(1)
fmul qword [0x46d498]
fstp qword [esp + 0x18]
fld qword [esp + 0x28]
fsub st(1)
fabs
fcomp qword [0x46d498]
fnstsw ax
test ah, 0x41
jne 0x456f01
fld qword [esp + 0x28]
fcomp qword [0x46d498]
fnstsw ax
test ah, 1
je 0x456efb
fld qword [esp + 0x28]
fadd qword [0x46d3f8]
fstp qword [esp + 0x28]
jmp 0x456f01
fadd qword [0x46d3f8]
fld qword [esp + 0x18]
fsub st(1)
fabs
fcomp qword [0x46d498]
fnstsw ax
test ah, 0x41
jne 0x456f3d
fld qword [esp + 0x18]
fcomp qword [0x46d498]
fnstsw ax
test ah, 1
je 0x456f37
fld qword [esp + 0x18]
fadd qword [0x46d3f8]
fstp qword [esp + 0x18]
jmp 0x456f3d
fadd qword [0x46d3f8]
fld qword [esp + 0x18]
fsub qword [esp + 0x28]
fabs
fcomp qword [0x46d498]
fnstsw ax
test ah, 0x41
jne 0x456f83
fld qword [esp + 0x18]
fcomp qword [0x46d498]
fnstsw ax
test ah, 1
je 0x456f75
fld qword [esp + 0x18]
fadd qword [0x46d3f8]
fstp qword [esp + 0x18]
jmp 0x456f83
fld qword [esp + 0x28]
fadd qword [0x46d3f8]
fstp qword [esp + 0x28]
fld qword [esp + 0xd8]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456fa7
fstp st(0)
fld qword [esp + 0x18]
fadd qword [esp + 0x28]
fmul qword [0x46d498]
fld qword [esp + 0x40]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456fc8
fld qword [esp + 0x18]
fadd st(1)
fmul qword [0x46d498]
fstp qword [esp + 0x28]
fld qword [esp + 0x78]
fcomp qword [0x46d9c8]
fnstsw ax
test ah, 1
je 0x456fe9
fld qword [esp + 0x28]
fadd st(1)
fmul qword [0x46d498]
fstp qword [esp + 0x18]
fmul qword [esp + 0x68]
mov eax, dword [esp + 0x94]
dec eax
fsub qword [esp + 0xb0]
fld qword [esp + 0x38]
fmul qword [esp + 0x88]
fsubr qword [esp + 0xb8]
fst qword [esp + 0x38]
fld qword [esp + 0x28]
fmul qword [esp + 0x68]
fsub qword [esp + 0xb0]
fstp qword [esp + 0x28]
fld qword [esp + 0x58]
fmul qword [esp + 0x88]
fsubr qword [esp + 0xb8]
fstp qword [esp + 0x58]
fld qword [esp + 0x18]
fmul qword [esp + 0x68]
fsub qword [esp + 0xb0]
fstp qword [esp + 0x18]
fld qword [esp + 0x60]
fmul qword [esp + 0x88]
fsubr qword [esp + 0xb8]
fstp qword [esp + 0x60]
je 0x457286
dec eax
je 0x4570d2
mov ecx, dword [0x4732cc]
lea edx, [esi - 3]
push ecx
push ecx
fstp dword [esp]
push ecx
fstp dword [esp]
push edx
call fcn.00404440
mov eax, dword [0x4732cc]
add esp, 0x10
fld qword [esp + 0x58]
push eax
push ecx
fstp dword [esp]
fld qword [esp + 0x30]
push ecx
lea ecx, [esi - 2]
fstp dword [esp]
push ecx
call fcn.00404440
mov edx, dword [0x4732cc]
add esp, 0x10
fld qword [esp + 0x60]
push edx
push ecx
lea eax, [esi - 1]
fstp dword [esp]
fld qword [esp + 0x20]
push ecx
fstp dword [esp]
push eax
call fcn.00404440
add esp, 0x10
jmp 0x4575bb
fstp st(0)
fld qword [esp + 0x18]
fadd qword [esp + 0x28]
faddp st(1)
fmul qword [0x46e2d0]
fld qword [esp + 0x60]
fadd qword [esp + 0x58]
fadd qword [esp + 0x38]
fmul qword [0x46e2d0]
fst qword [esp + 0x40]
fld st(1)
fcomp qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x457122
fxch st(1)
fsub qword [0x46d3f8]
fxch st(1)
fld st(1)
fcomp qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x457109
fld st(1)
fcomp qword [0x46d400]
fnstsw ax
test ah, 1
je 0x45714a
fxch st(1)
fadd qword [0x46d3f8]
fxch st(1)
fld st(1)
fcomp qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x457131
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x45716e
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x457157
fst qword [esp + 0x40]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x45727f
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x45717f
fstp qword [esp + 0x40]
fild dword [esp + 0x24]
sub esp, 8
fmul st(1)
fstp qword [esp]
fstp st(0)
call fcn.00430870
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 8
cmp edi, eax
jl 0x4571b9
lea edi, [eax - 1]
fild dword [esp + 0x48]
sub esp, 8
fmul qword [esp + 0x48]
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x50]
add esp, 8
cmp eax, ecx
jl 0x4571da
lea eax, [ecx - 1]
imul eax, dword [esp + 0x24]
add eax, edi
mov edi, dword [esp + 0xec]
shl eax, 2
mov dl, byte [eax + edi + 1]
mov cl, byte [eax + edi]
mov byte [esp + 0x70], dl
mov dl, byte [eax + edi + 3]
mov byte [esp + 0x74], cl
mov cl, byte [eax + edi + 2]
mov eax, dword [esp + 0x74]
mov byte [esp + 0x17c], dl
mov edi, dword [esp + 0x17c]
mov byte [esp + 0x84], cl
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0x84]
push edi
push eax
push ecx
lea eax, [esi - 3]
push edx
push eax
call fcn.00404240
mov ecx, dword [esp + 0x88]
mov edx, dword [esp + 0x84]
mov eax, dword [esp + 0x98]
push edi
push ecx
push edx
lea ecx, [esi - 2]
push eax
push ecx
call fcn.00404240
mov edx, dword [esp + 0x9c]
mov eax, dword [esp + 0x98]
mov ecx, dword [esp + 0xac]
push edi
push edx
push eax
lea edx, [esi - 1]
push ecx
push edx
call fcn.00404240
add esp, 0x3c
jmp 0x4575bb
fstp st(0)
jmp 0x457196
fld st(1)
fcomp qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x4572ae
fxch st(1)
fsub qword [0x46d3f8]
fxch st(1)
fld st(1)
fcomp qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x457295
fld st(1)
fcomp qword [0x46d400]
fnstsw ax
test ah, 1
je 0x4572d6
fxch st(1)
fadd qword [0x46d3f8]
fxch st(1)
fld st(1)
fcomp qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x4572bd
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x4572fa
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x4572e3
fst qword [esp + 0x38]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x457436
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x45730b
fstp qword [esp + 0x38]
fild dword [esp + 0x24]
sub esp, 8
fstp qword [esp + 0x48]
fmul qword [esp + 0x48]
fstp qword [esp]
call fcn.00430870
mov edi, eax
mov eax, dword [esp + 0x2c]
add esp, 8
cmp edi, eax
jl 0x457349
lea edi, [eax - 1]
fild dword [esp + 0x48]
sub esp, 8
fstp qword [esp + 0x80]
fld qword [esp + 0x40]
fmul qword [esp + 0x80]
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x50]
add esp, 8
cmp eax, ecx
jl 0x457378
lea eax, [ecx - 1]
imul eax, dword [esp + 0x24]
add eax, edi
mov edi, dword [esp + 0xec]
shl eax, 2
mov cl, byte [eax + edi + 3]
mov dl, byte [eax + edi]
push ecx
mov cl, byte [eax + edi + 1]
push edx
mov dl, byte [eax + edi + 2]
push ecx
lea eax, [esi - 3]
push edx
push eax
call fcn.00404240
fld qword [esp + 0x3c]
fcom qword [0x46d3f8]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne 0x4573cc
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x4573b9
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x4573ec
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x4573d9
fld qword [esp + 0x58]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x457414
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x4573fd
fst qword [esp + 0x58]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x45743d
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x457421
jmp 0x457441
fstp st(0)
jmp 0x457322
fstp st(0)
jmp 0x457445
fstp qword [esp + 0x58]
fmul qword [esp + 0x40]
sub esp, 8
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x2c]
add esp, 8
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x457468
dec ecx
mov dword [esp + 0x50], ecx
fld qword [esp + 0x58]
fmul qword [esp + 0x78]
sub esp, 8
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x50]
add esp, 8
cmp eax, ecx
jl 0x45748b
mov edx, ecx
lea eax, [edx - 1]
imul eax, dword [esp + 0x24]
add eax, dword [esp + 0x50]
shl eax, 2
mov cl, byte [eax + edi + 3]
mov dl, byte [eax + edi]
push ecx
mov cl, byte [eax + edi + 1]
push edx
mov dl, byte [eax + edi + 2]
push ecx
lea eax, [esi - 2]
push edx
push eax
call fcn.00404240
fld qword [esp + 0x2c]
fcom qword [0x46d3f8]
add esp, 0x14
fnstsw ax
test ah, 0x41
jne 0x4574da
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x4574c7
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x4574fa
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x4574e7
fld qword [esp + 0x60]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
jne 0x457522
fsub qword [0x46d3f8]
fcom qword [0x46d3f8]
fnstsw ax
test ah, 0x41
je 0x45750b
fst qword [esp + 0x60]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
je 0x457614
fadd qword [0x46d3f8]
fcom qword [0x46d400]
fnstsw ax
test ah, 1
jne 0x457533
fstp qword [esp + 0x60]
fmul qword [esp + 0x40]
sub esp, 8
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x2c]
add esp, 8
cmp eax, ecx
mov dword [esp + 0x50], eax
jl 0x45756d
dec ecx
mov dword [esp + 0x50], ecx
fld qword [esp + 0x60]
fmul qword [esp + 0x78]
sub esp, 8
fstp qword [esp]
call fcn.00430870
mov ecx, dword [esp + 0x50]
add esp, 8
cmp eax, ecx
jl 0x457590
mov edx, ecx
lea eax, [edx - 1]
imul eax, dword [esp + 0x24]
add eax, dword [esp + 0x50]
shl eax, 2
mov cl, byte [eax + edi + 3]
mov dl, byte [eax + edi]
push ecx
mov cl, byte [eax + edi + 1]
push edx
mov dl, byte [eax + edi + 2]
push ecx
lea eax, [esi - 1]
push edx
push eax
call fcn.00404240
add esp, 0x14
mov eax, dword [esp + 0xac]
dec eax
test eax, eax
mov dword [esp + 0xac], eax
jg 0x4566ad
mov eax, dword [esp + 0x94]
test eax, eax
jle 0x45761b
mov ecx, dword [0x4732cc]
mov edx, dword [ebx + ecx*4 + 0x3a4]
push edx
call fcn.004010f0
mov eax, dword [0x4732cc]
add esp, 4
mov dword [ebx + eax*4 + 0x3a4], 0xffffffff
mov dword [ebx + 0x364], 0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
jmp 0x45754a
mov eax, dword [esp + 0x12c]
test eax, eax
jne 0x457668
mov eax, dword [0x4732cc]
mov ecx, 3
cmp dword [ebx + eax*4 + 0x134], ecx
jne 0x457649
mov dword [ebx + eax*4 + 0x134], 1
mov eax, dword [0x4732cc]
cmp dword [ebx + eax*4 + 0x154], ecx
jne 0x457668
mov dword [ebx + eax*4 + 0x154], 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
fstp st(0)
fstp st(0)
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret