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

Disassembly:
push ebx
push esi
push edi
push ebp
mov ebp, ecx
sub esp, 0x168
mov esi, dword [ebp + 0x188]
mov ebx, dword [esp + 0x17c]
mov al, byte [esi + 0x50]
and al, 7
cmp al, 3
fldz
jne 0x45ff60
fld dword [0x5f0414]
fstp dword [esp + 0x70]
fld dword [0x5f0414]
fstp dword [esp + 0x74]
fld dword [0x5f0414]
cmp byte [0x628aa4], 0
fstp dword [esp + 0x2c]
jne 0x45e400
mov byte [0x628aa4], 1
mov dword [0x628aa0], 0
cmp byte [0x628aac], 0
jne 0x45e41a
mov byte [0x628aac], 1
mov dword [0x628aa8], 0
fld dword [0x5f0414]
fstp dword [esp + 0x38]
fld dword [0x5f0770]
fstp dword [esp + 0x3c]
fld dword [0x5f0770]
fstp dword [esp + 0x40]
fld dword [0x5f0414]
cmp byte [0x628ab4], 0
mov byte [esp + 0xc], 0
fstp dword [esp + 0x48]
mov byte [esp + 4], 0
mov byte [esp + 8], 0
mov byte [esp + 0x10], 0
jne 0x45e470
mov byte [0x628ab4], 1
mov dword [0x628ab0], 0
cmp byte [0x628ab6], 0
jne 0x45e487
mov byte [0x628ab6], 1
mov byte [0x628ab5], 0
mov byte [ebp + 4], 0
mov byte [ebp], 0
mov byte [ebp + 1], 0
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45e4d3
fld dword [0x5f0778]
fstp dword [esp + 0x30]
fld dword [0x5f0450]
fstp dword [esp + 0x34]
fld dword [0x5f0454]
fstp dword [esp + 0x3c]
fld dword [0x5f0454]
fstp dword [esp + 0x40]
fld dword [0x5f077c]
jmp 0x45e52d
fld dword [0x5f0484]
fstp dword [esp + 0x30]
fld dword [0x5f0780]
fstp dword [esp + 0x34]
fld dword [0x6fae58]
fstp st(1)
fld dword [0x5f0410]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45e513
fld dword [0x5f066c]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e527
fld dword [0x5f0450]
fstp dword [esp + 0x30]
fld dword [0x5f0784]
fstp dword [esp + 0x34]
fld dword [0x5f0788]
fstp dword [esp + 0x44]
mov dword [ebp + 0xb0], 0x428c0000
cmp byte [ebp + 0xa], 0
je 0x45e57c
mov dword [0x628aa8], 0
mov byte [ebp + 0xb], 0
mov byte [0x628a9d], 0
mov byte [0x628a9e], 0
mov dword [0x628aa0], 0
mov byte [ebp + 3], 1
fld dword [0x5f0414]
fstp dword [esp + 0x38]
mov byte [0x628ab5], 0
fld dword [ebx]
fstp dword [esp + 0x8c]
fld dword [ebx + 4]
fstp dword [esp + 0x90]
fld dword [ebx + 8]
fstp dword [esp + 0x94]
fld dword [ebp + 0x14c]
fstp dword [esp + 0x58]
fld dword [ebp + 0x150]
fstp dword [esp + 0x5c]
fld dword [esp + 0x94]
fadd dword [ebp + 0x38]
lea eax, [esp + 0x120]
lea edi, [esp + 0x8c]
mov ecx, ebp
push edi
push eax
fstp dword [esp + 0x9c]
fstp st(0)
call fcn.00457710
mov eax, dword [esp + 0x120]
mov edx, dword [esp + 0x124]
mov dword [esp + 0x8c], eax
mov eax, dword [esp + 0x128]
mov dword [esp + 0x94], eax
mov dword [esp + 0x90], edx
fldz
fldz
fldz
fld dword [esp + 0x94]
fadd dword [ebp + 0x3c]
fstp dword [esp + 0x94]
fld dword [esp + 0x58]
fsub dword [esp + 0x8c]
fstp st(2)
fld dword [esp + 0x5c]
fsub dword [esp + 0x90]
fst st(1)
fmul st(0)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld dword [0x5f0414]
fcomp st(3)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45e686
fld st(1)
fmul dword [0x5f078c]
fdiv st(3)
fadd dword [esp + 0x8c]
fstp dword [esp + 0x78]
fld st(0)
fmul dword [0x5f078c]
fdiv st(3)
fadd dword [esp + 0x90]
jmp 0x45e6a4
fld dword [esp + 0x8c]
fadd dword [0x5f0410]
fstp dword [esp + 0x78]
fld dword [esp + 0x90]
fadd dword [0x5f0410]
fstp dword [esp + 0x7c]
fld dword [esp + 0x94]
fadd dword [0x5f0414]
fstp dword [esp + 0x60]
cmp byte [0x6fad62], 0
je 0x45e760
cmp byte [ebp + 0xa], 0
je 0x45e760
fld dword [ebp + 0x98]
fcos
fnstsw ax
test eax, 0x400
je 0x45e6e8
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld dword [0x5f078c]
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [esp + 0x78]
fld dword [ebp + 0x98]
fsin
fnstsw ax
test eax, 0x400
je 0x45e723
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld dword [0x5f078c]
fmul st(3)
fld dword [esp + 0x90]
fstp st(4)
push eax
fadd st(3)
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fsub st(3)
fstp dword [esp]
fld dword [esp + 0x7c]
jmp 0x45e777
fld dword [ebp + 0x150]
fsub dword [esp + 0x90]
push eax
fstp dword [esp]
fld dword [ebp + 0x14c]
fsub dword [esp + 0x90]
push eax
fstp dword [esp]
fcompp
fstp st(0)
call fcn.0048cc30
fstp dword [ebp + 0xb8]
pop ecx
pop ecx
cmp byte [0x6fad46], 1
jne 0x45e7b3
mov byte [ebp + 3], 1
fld dword [0x5f041c]
fadd dword [esp + 0x180]
fstp dword [ebp + 0xb8]
call fcn.004a10c0
test eax, eax
je 0x45e7d1
call fcn.004a10c0
mov eax, dword [eax + 0x284]
cmp eax, 2
jne 0x45e7d1
mov byte [esp + 4], 1
cmp byte [0x6fad47], 1
fldz
jne 0x45e802
mov byte [ebp + 3], 1
fld dword [esp + 0x180]
jmp 0x45e7fc
fld dword [ebp + 0xb8]
fsub dword [0x5f0420]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
je 0x45e7f0
jmp 0x45e829
fld dword [ebp + 0xb8]
fadd dword [0x5f0420]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45e817
cmp byte [ebp + 0xa], 0
je 0x45e8c9
fld dword [0x5f0410]
fcomp dword [0x6fae58]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e869
mov dword [ebp + 0x8c], 0x4005cbab
fld dword [0x5f0790]
fcomp dword [0x6fae58]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e889
mov dword [ebp + 0x8c], 0x405661fa
fld dword [0x5f0418]
fcomp dword [0x6fae58]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e8a9
mov dword [ebp + 0x8c], 0x40968ea8
fld dword [0x5f066c]
fcomp dword [0x6fae58]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e8c9
mov dword [ebp + 0x8c], 0x4005cbab
fld dword [0x6fae58]
fstp st(1)
fld dword [0x5f0410]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e8ed
fld dword [0x5f0794]
fstp dword [esp + 0x48]
fld dword [0x5f0790]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e909
fld dword [0x5f0798]
fstp dword [esp + 0x48]
fld dword [0x5f0418]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e925
fld dword [0x5f079c]
fstp dword [esp + 0x48]
fld dword [0x5f066c]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45e941
fld dword [0x5f0794]
fstp dword [esp + 0x48]
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45e95b
fld dword [0x5f07a0]
fstp dword [esp + 0x48]
mov byte [esp + 0x14], 0
mov ecx, dword [ebp + 0x188]
movsx eax, byte [ecx + 0x498]
lea eax, [eax + eax*2]
cmp dword [ecx + eax*8 + 0x35c], 0
je 0x45fef8
push 0
fstp st(0)
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.004936c0
test eax, eax
je 0x45e998
mov byte [esp + 0x14], 1
mov edi, dword [ebp + 0x188]
mov esi, edi
movsx eax, byte [esi + 0x498]
lea eax, [eax + eax*2]
cmp dword [esi + eax*8 + 0x35c], 0xc
je 0x45e9c8
movsx eax, byte [edi + 0x498]
lea eax, [eax + eax*2]
cmp dword [edi + eax*8 + 0x35c], 1
jne 0x45e9cd
mov byte [esp + 0x14], 0
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45e9ee
fld dword [esp + 0x94]
fsub dword [ebp + 0x3c]
fstp dword [esp + 0x94]
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493d80
test al, al
jne 0x45ea0c
cmp byte [esp + 0x14], 0
je 0x45ebf0
mov byte [esp + 0xc], 1
mov byte [ebp + 3], 1
fld dword [ebp + 0xb8]
fstp dword [esp + 0x4c]
fld dword [0x5f041c]
fadd dword [esp + 0x180]
push 0
push 1
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fstp dword [ebp + 0xb8]
fld dword [esp + 0x9c]
fsub dword [0x5f0440]
push 0
push 0
fstp dword [esp + 0xa4]
fld dword [esp + 0x44]
fmul dword [esp + 0x58]
push 1
push dword [0x5f0414]
push eax
mov ecx, ebp
fstp dword [esp]
lea eax, [esp + 0xa8]
push eax
call fcn.00458060
fstp dword [esp + 0x38]
fld dword [0x5f0414]
fcomp dword [esp + 0x38]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45eb55
fld dword [esp + 0x30]
fmul dword [esp + 0x48]
lea eax, [esp + 0x8c]
mov ecx, ebp
push 0
push 1
push 0
push 0
push 1
push dword [esp + 0x54]
fstp dword [esp + 0x7c]
push dword [esp + 0x7c]
push eax
call fcn.00458060
fstp dword [esp + 0x24]
fld dword [esp + 0x40]
push 0
push 1
push 0
push 0
push 1
push eax
mov ecx, ebp
fchs
fstp dword [esp]
lea eax, [esp + 0xa4]
push dword [esp + 0x7c]
push eax
call fcn.00458060
fstp dword [esp + 0x28]
fld dword [0x5f0414]
fcomp dword [esp + 0x24]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45eb23
fld dword [0x5f0414]
fcomp dword [esp + 0x28]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45eb23
fld dword [esp + 0x38]
fadd dword [esp + 0x28]
jmp 0x45eb7b
fld dword [0x5f0414]
fcomp dword [esp + 0x24]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45eb7f
fld dword [0x5f0414]
fcomp dword [esp + 0x28]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45eb7f
fld dword [esp + 0x38]
fadd dword [esp + 0x24]
jmp 0x45eb7b
fld dword [esp + 0x38]
fcomp dword [0x5f0414]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45eb73
fld dword [esp + 0x38]
fsub dword [esp + 0x44]
jmp 0x45eb7b
fld dword [esp + 0x38]
fadd dword [esp + 0x44]
fstp dword [esp + 0x38]
fld dword [esp + 0x94]
fadd dword [0x5f0440]
fstp dword [esp + 0x94]
fld dword [esp + 0x4c]
fstp dword [ebp + 0xb8]
cmp byte [0x628a9e], 0
jne 0x45ebc4
fld dword [esp + 0x68]
fadd dword [esp + 0x38]
fstp dword [0x628aa8]
mov byte [ebp + 0xb], 1
mov byte [0x628a9e], 1
jmp 0x45edd3
fld dword [0x5f0414]
fcomp dword [esp + 0x38]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45ebe2
fld dword [esp + 0x68]
fstp dword [0x628aa8]
mov byte [ebp + 0xb], 1
jmp 0x45edd3
fld dword [esp + 0x94]
fsub dword [0x5f0440]
push 0
push 1
fstp dword [esp + 0x9c]
fld dword [esp + 0x3c]
fmul dword [esp + 0x50]
push 0
push 0
push 1
push dword [0x5f0414]
push eax
mov ecx, ebp
fstp dword [esp]
lea eax, [esp + 0xa8]
push eax
call fcn.00458060
fstp dword [esp + 0x2c]
cmp byte [ebp + 3], 1
je 0x45ec6a
cmp byte [0x628a9d], 1
je 0x45ec6a
fld dword [0x5f0414]
fcomp dword [esp + 0x2c]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45ec6a
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45edbf
fld dword [0x5f0414]
fcomp dword [esp + 0x2c]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45ec90
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
jmp 0x45ed7e
fld dword [esp + 0x30]
fmul dword [esp + 0x48]
lea eax, [esp + 0x8c]
mov ecx, ebp
push 0
push 1
push 0
push 0
push 1
push dword [esp + 0x50]
fstp dword [esp + 0x84]
push dword [esp + 0x84]
push eax
call fcn.00458060
fstp dword [esp + 0x70]
fld dword [esp + 0x3c]
push 0
push 1
push 0
push 0
push 1
push eax
mov ecx, ebp
fchs
fstp dword [esp]
lea eax, [esp + 0xa4]
push dword [esp + 0x84]
push eax
call fcn.00458060
fstp dword [esp + 0x74]
fld dword [0x5f0414]
fcomp dword [esp + 0x70]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45ed27
fld dword [0x5f0414]
fcomp dword [esp + 0x74]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45ed27
fld dword [esp + 0x38]
fadd dword [esp + 0x74]
jmp 0x45ed57
fld dword [0x5f0414]
fcomp dword [esp + 0x70]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45ed7e
fld dword [0x5f0414]
fcomp dword [esp + 0x74]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45ed7e
fld dword [esp + 0x38]
fadd dword [esp + 0x70]
fstp dword [esp + 0x38]
fld dword [ebp + 0x60]
fcomp dword [0x5f0414]
fnstsw ax
test ah, 0x45
jne 0x45ed7e
mov eax, dword [0x72676c]
push dword [0x5f07a4]
push eax
call fcn.005a5070
pop ecx
pop ecx
fld dword [0x5f0414]
fcomp dword [esp + 0x70]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45edba
fld dword [0x5f0414]
fcomp dword [esp + 0x74]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45edba
fld dword [0x5f0414]
fcomp dword [esp + 0x2c]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45edbf
mov byte [esp + 0x10], 1
fld dword [esp + 0x94]
fadd dword [0x5f0440]
fstp dword [esp + 0x94]
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45edf4
fld dword [esp + 0x94]
fadd dword [ebp + 0x3c]
fstp dword [esp + 0x94]
fld dword [0x5f0414]
fcomp dword [esp + 0x38]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45f088
push 0
mov byte [esp + 0xc], 1
mov byte [ebp + 0xb], 1
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493d80
test al, al
jne 0x45ee2f
cmp byte [esp + 0x14], 0
je 0x45ee38
cmp byte [0x628a9e], 0
jne 0x45ee48
fld dword [ebp + 0xb8]
fadd dword [esp + 0x38]
fstp dword [0x628aa8]
mov dword [ebp + 0x40], 0x3f800000
call fcn.004a1150
add eax, 0x34
lea edi, [esp + 0xa4]
lea esi, [eax]
movsd dword es:[edi], dword [esi]
fldz
fldz
fldz
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [ebp + 0xb8]
fsub dword [esp + 0x38]
fstp st(3)
fld dword [esp + 0x38]
fcomp dword [esp + 0x2c]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45ee90
fld dword [esp + 0x34]
jmp 0x45ee94
fld dword [esp + 0x30]
fmul dword [esp + 0x48]
fstp st(2)
fld st(2)
fsin
fnstsw ax
test eax, 0x400
je 0x45eeae
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld st(2)
fcos
fnstsw ax
test eax, 0x400
je 0x45eed2
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fstp dword [esp + 0x12c]
fld st(1)
fmul st(1)
fstp dword [esp + 0x130]
fld st(1)
fmul dword [0x5f0414]
lea esi, [esp + 0x12c]
lea edi, [esp + 0xdc]
push 0
fstp dword [esp + 0x138]
movsd dword es:[edi], dword [esi]
push 0
push 0
push 1
push 0
push 0
push 1
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0xc0]
fadd dword [esp + 0xf8]
lea eax, [esp + 0xcc]
lea esi, [esp + 0xf4]
push esi
push eax
fstp dword [esp + 0xbc]
fld dword [esp + 0xcc]
fadd dword [esp + 0x104]
lea eax, [esp + 0xc8]
lea ecx, [esp + 0xbc]
push ecx
push eax
fstp dword [esp + 0xc8]
fld dword [esp + 0xd8]
fadd dword [esp + 0x110]
fstp dword [esp + 0xcc]
fcompp
fstp st(0)
call fcn.004af970
add esp, 0x2c
test al, al
fldz
fldz
fldz
fldz
fldz
je 0x45ff00
fld dword [esp + 0xac]
fstp st(5)
fld st(4)
fsub dword [esp + 0xb8]
fstp st(2)
fld dword [esp + 0xa8]
fst st(1)
fsub dword [esp + 0xb4]
fstp st(3)
fld dword [esp + 0xa4]
fsub dword [esp + 0xb0]
fstp st(4)
fld st(4)
fsub dword [esp + 0xa0]
fstp dword [esp + 0x18]
fsub dword [esp + 0x9c]
fld dword [esp + 0xa4]
fsub dword [esp + 0x98]
fstp st(5)
fld st(0)
fmul st(0)
fld st(5)
fmul st(0)
faddp st(1)
fld dword [esp + 0x18]
fmul st(0)
faddp st(1)
fstp st(5)
fld st(4)
fst st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [0x5f0414]
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45f045
mov dword [ebp + 0x40], 0x3f800000
jmp 0x45ff10
fld st(4)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(5)
fld st(2)
fmul st(0)
fld st(4)
fmul st(0)
faddp st(1)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(4)
fld st(3)
fdiv st(5)
fstp dword [ebp + 0x40]
fcompp
fcompp
fstp st(0)
fld dword [ebp + 0x40]
fcomp dword [0x5f0414]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f0a2
mov dword [ebp + 0x40], 0
fld dword [ebp + 0x40]
fcomp dword [0x5f0410]
fnstsw ax
test ah, 0x45
jne 0x45f0b9
mov dword [ebp + 0x40], 0x3f800000
cmp byte [0x628abc], 0
jne 0x45f0d3
mov byte [0x628abc], 1
mov dword [0x628ab8], 0x3eb33333
cmp byte [0x628ac4], 0
jne 0x45f0ed
mov byte [0x628ac4], 1
mov dword [0x628ac0], 0x3f59999a
cmp byte [0x628acc], 0
jne 0x45f107
mov byte [0x628acc], 1
mov dword [0x628ac8], 0x3f333333
cmp byte [0x628ad4], 0
jne 0x45f121
mov byte [0x628ad4], 1
mov dword [0x628ad0], 0x3fcccccd
fld dword [0x5f045c]
fstp dword [esp + 0x50]
fld dword [0x5f07a8]
fstp dword [esp + 0x54]
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45f184
fld dword [0x5f0414]
fcomp dword [esp + 0x38]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45f170
fld dword [0x5f07ac]
fstp dword [esp + 0x50]
fld dword [0x5f0758]
jmp 0x45f180
fld dword [0x5f07b0]
fstp dword [esp + 0x50]
fld dword [0x5f075c]
fstp dword [esp + 0x54]
fld dword [0x5f0414]
fcomp dword [esp + 0x38]
fnstsw ax
and ah, 0x44
cmp ah, 0x40
je 0x45f250
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493d80
test al, al
fldz
fldz
je 0x45f1ba
cmp byte [esp + 0x14], 0
je 0x45f234
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
je 0x45f201
fld dword [ebp + 0x40]
fsub dword [0x5f07b4]
fst st(1)
fstp st(2)
fld st(1)
fmul st(0)
fmul dword [0x628ab8]
fadd dword [0x5f07b0]
fstp dword [esp + 0x1c]
fld st(0)
fmul st(0)
fmul dword [0x628ac0]
fadd dword [0x5f075c]
fstp dword [esp + 0x20]
jmp 0x45f264
fld dword [ebp + 0x40]
fsub dword [0x5f07b4]
fst st(1)
fstp st(2)
fld st(1)
fmul st(0)
fmul dword [0x628ac8]
fadd dword [esp + 0x50]
fstp dword [esp + 0x1c]
fld st(0)
fmul st(0)
fmul dword [0x628ad0]
fadd dword [esp + 0x54]
fstp dword [esp + 0x20]
jmp 0x45f264
fld dword [0x5f07b8]
fstp dword [esp + 0x1c]
fld dword [0x5f07bc]
fstp dword [esp + 0x20]
jmp 0x45f264
mov eax, dword [esp + 0x50]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x54]
fldz
fldz
mov dword [esp + 0x20], eax
cmp byte [0x628adc], 0
jne 0x45f27e
mov byte [0x628adc], 1
mov dword [0x628ad8], 0x3e99999a
cmp byte [0x628ae4], 0
jne 0x45f298
mov byte [0x628ae4], 1
mov dword [0x628ae0], 0x3f266666
fld dword [esp + 0x1c]
fcomp dword [0x628ad8]
fnstsw ax
test ah, 0x45
jne 0x45f2b3
fld dword [0x628ad8]
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fcomp dword [0x628ae0]
fnstsw ax
test ah, 0x45
jne 0x45f2ce
fld dword [0x628ae0]
fstp dword [esp + 0x20]
mov eax, dword [ebp + 0x188]
mov dword [esp + 0x144], 0
mov dword [esp + 0x14c], 0
mov dword [esp + 0x148], 0
fld dword [eax + 0x8c]
fadd dword [eax + 0xa4]
fstp st(1)
fld dword [eax + 0x88]
fadd dword [eax + 0xa0]
fstp st(2)
fld dword [eax + 0x84]
fadd dword [eax + 0x9c]
lea eax, [esp + 0x144]
push eax
lea eax, [esp + 0x160]
fstp dword [esp + 0x154]
fld st(1)
lea edx, [esp + 0x154]
fstp dword [esp + 0x158]
fst dword [esp + 0x15c]
fcompp
push edx
push eax
call fcn.004ba350
mov eax, dword [ebp + 0x188]
add esp, 0xc
mov edi, dword [eax + 0x22c]
test edi, edi
je 0x45f39a
cmp edi, 1
je 0x45f39a
push 0
call fcn.00492f60
pop ecx
mov ecx, eax
call fcn.00493d80
test al, al
jne 0x45f39a
cmp byte [esp + 8], 0
jne 0x45f39a
cmp byte [esp + 0x14], 0
jne 0x45f39a
mov byte [ebp + 0xb], 0
mov dword [ebp + 0xbc], 0
fldz
fldz
fldz
fld dword [esp + 0x7c]
fsub dword [esp + 0x90]
fstp st(2)
fld dword [esp + 0x78]
fsub dword [esp + 0x8c]
fstp st(3)
fld st(1)
fmul st(0)
fld st(3)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(2)
fld st(1)
fstp dword [ebp + 0x74]
cmp byte [ebp + 0xb], 0
je 0x45f79b
mov byte [ebp + 4], 1
fld dword [0x628aa8]
fstp st(3)
fld dword [0x628aa8]
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
jne 0x45f41b
fld dword [0x5f0420]
fsubp st(3)
fld st(2)
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
je 0x45f404
fld st(2)
fstp st(1)
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f447
fadd dword [0x5f0420]
fcom dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45f431
fst dword [0x628aa8]
jmp 0x45f462
fld dword [ebp + 0xb8]
fsub dword [0x5f0420]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
je 0x45f450
jmp 0x45f489
fld dword [ebp + 0xb8]
fadd dword [0x5f0420]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fstp st(3)
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45f477
fld dword [0x628aa8]
fsub st(3)
fstp st(3)
fld st(2)
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
jne 0x45f4d7
lea eax, [eax]
fld dword [0x5f0420]
fsubp st(3)
fld st(2)
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
je 0x45f4c0
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f50a
lea eax, [eax]
fld dword [0x5f0420]
faddp st(3)
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45f4f0
fld st(2)
fmul dword [esp + 0x20]
fstp st(3)
fld st(2)
fsub dword [ebp + 0xbc]
fst st(1)
fcomp dword [0x5f0414]
fnstsw ax
test ah, 0x45
jne 0x45f551
fld st(0)
fabs
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [esp + 0x1c]
fmul st(1)
fmul dword [0x8e2cb4]
fadd dword [ebp + 0xbc]
jmp 0x45f577
fld st(0)
fabs
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(1)
fld dword [esp + 0x1c]
fmul st(1)
fmul dword [0x8e2cb4]
fsubr dword [ebp + 0xbc]
fstp dword [ebp + 0xbc]
fld st(2)
fcomp dword [0x5f0414]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f5a1
fld dword [ebp + 0xbc]
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45f5bf
fld st(2)
fcomp dword [0x5f0414]
fnstsw ax
test ah, 0x45
jne 0x45f5c7
fld dword [ebp + 0xbc]
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x45f5c7
fld st(2)
fstp dword [ebp + 0xbc]
fld dword [0x5f0428]
fcomp dword [0x8e2cb4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f5e5
fld dword [0x5f0428]
jmp 0x45f5eb
fld dword [0x8e2cb4]
fstp st(3)
fld dword [ebp + 0xbc]
fmul st(3)
fadd dword [ebp + 0xb8]
fstp dword [ebp + 0xb8]
cmp byte [ebp + 0xa], 1
jne 0x45f680
fld dword [0x628aa8]
fstp dword [ebp + 0xb8]
mov dword [ebp + 0xbc], 0
fld dword [ebp + 0xb8]
fcos
fnstsw ax
test eax, 0x400
je 0x45f635
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0xb8]
fsin
fnstsw ax
test eax, 0x400
je 0x45f66e
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
jmp 0x45f6df
fld dword [ebp + 0xb8]
fcos
fnstsw ax
test eax, 0x400
je 0x45f698
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0xb8]
fsin
fnstsw ax
test eax, 0x400
je 0x45f6d1
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x90]
fstp dword [ebp + 0x150]
fld dword [0x628aa8]
fsub dword [ebp + 0xb8]
fstp st(3)
fld st(2)
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
jne 0x45f727
nop
fld dword [0x5f0420]
fsubp st(3)
fld st(2)
fcomp dword [0x5f041c]
fnstsw ax
test ah, 5
je 0x45f710
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f75a
lea eax, [eax]
fld dword [0x5f0420]
faddp st(3)
fld st(2)
fcomp dword [0x5f0424]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x45f740
fld st(2)
fabs
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(2)
fcomp dword [0x5f06ac]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45f79b
cmp byte [ebp + 1], 0
jne 0x45f79b
mov byte [0x628a9e], 0
mov byte [ebp + 0xb], 0
mov dword [ebp + 0xbc], 0
mov al, byte [0x6fad46]
cmp al, 1
je 0x45f7c5
cmp byte [0x6fad47], 1
je 0x45f7c5
cmp byte [esp + 4], 0
jne 0x45f7c5
cmp byte [esp + 4], 0
jne 0x45f7c5
cmp byte [ebp + 0xb], 0
je 0x45f981
cmp al, 1
jne 0x45f852
fld dword [0x5f041c]
fadd dword [esp + 0x180]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcos
fnstsw ax
test eax, 0x400
je 0x45f7f8
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0xb8]
fsin
fnstsw ax
test eax, 0x400
je 0x45f831
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x90]
fstp dword [ebp + 0x150]
cmp byte [0x6fad47], 1
jne 0x45f8da
fld dword [esp + 0x180]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcos
fnstsw ax
test eax, 0x400
je 0x45f880
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0xb8]
fsin
fnstsw ax
test eax, 0x400
je 0x45f8b9
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x90]
fstp dword [ebp + 0x150]
cmp byte [esp + 4], 0
je 0x45f9a9
fld dword [0x5f041c]
fadd dword [esp + 0x180]
fstp dword [ebp + 0xb8]
fld dword [ebp + 0xb8]
fcos
fnstsw ax
test eax, 0x400
je 0x45f910
call fcn.005a0cb0
fcos
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x8c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0xb8]
fsin
fnstsw ax
test eax, 0x400
je 0x45f949
call fcn.005a0cb0
fsin
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(3)
fld st(1)
fmul st(3)
fadd dword [esp + 0x90]
fstp dword [ebp + 0x150]
mov dword [ebp + 0x70], 0
mov dword [ebp + 0x58], 0
mov dword [ebp + 0x5c], 0
jmp 0x45f9a9
fld dword [esp + 0x78]
fstp dword [ebp + 0x14c]
fld dword [esp + 0x7c]
fstp dword [ebp + 0x150]
fld dword [esp + 0x60]
fstp dword [ebp + 0x154]
mov dword [ebp + 0xbc], 0
fld dword [ebp + 0x3c]
fstp st(3)
fld dword [esp + 0x60]
fsub st(3)
fstp dword [esp + 0x60]
fld dword [esp + 0x94]
fsub st(3)
fstp dword [esp + 0x94]
fld dword [esp + 0x60]
fstp dword [ebp + 0x154]
fld dword [0x6fae40]
fsubr qword [0x5f07c0]
fmul qword [0x5f07c8]
fsub qword [0x5f07d0]
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fadd dword [ebp + 0x154]
fstp dword [ebp + 0x154]
fld dword [esp + 0x94]
fsub dword [ebp + 0x154]
fstp st(2)
fld dword [esp + 0x90]
fsub dword [ebp + 0x150]
fstp st(3)
fld dword [esp + 0x8c]
fsub dword [ebp + 0x14c]
fstp dword [ebp + 0x140]
fld st(2)
fstp dword [ebp + 0x144]
fld st(1)
fstp dword [ebp + 0x148]
fcompp
lea ecx, [ebp + 0x140]
fstp st(0)
call fcn.004ba560
fldz
fldz
fldz
fldz
fldz
fld dword [0x6fae40]
fstp st(5)
fld dword [ebp + 0x148]
fchs
fmul st(5)
fstp st(3)
fld dword [ebp + 0x144]
fchs
fmul st(5)
fstp st(4)
fld dword [ebp + 0x140]
fchs
fmul st(5)
fadd dword [ebp + 0x14c]
fstp dword [ebp + 0x14c]
fld dword [ebp + 0x150]
fadd st(4)
fstp dword [ebp + 0x150]
fld dword [ebp + 0x154]
fadd st(3)
fstp dword [ebp + 0x154]
fld dword [0x6fae40]
fsub dword [0x5f0410]
fmul dword [0x5f0464]
fadd dword [ebp + 0x60]
fadd dword [ebp + 0x154]
fstp dword [ebp + 0x154]
fld dword [ebp + 0x3c]
fst st(1)
fadd dword [ebp + 0x70]
fstp st(5)
fld dword [ebp + 0x80]
fstp st(3)
fld st(4)
fcomp st(3)
fnstsw ax
test ah, 0x45
jne 0x45faf2
fld st(4)
jmp 0x45faf4
fld st(2)
fstp st(4)
fld dword [ebx + 8]
fadd st(4)
fsub dword [ebp + 0x154]
fstp st(5)
fld dword [ebp + 0x58]
fstp st(2)
fld st(4)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x45fbe0
fld st(3)
fcomp st(3)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45fb40
fld st(3)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x45fb40
push 0
push dword [0x5f0758]
jmp 0x45fbad
fld st(3)
fcomp st(1)
fnstsw ax
and ah, 0x44
cmp ah, 0x40
jne 0x45fba5
fld st(3)
fcomp st(2)
fnstsw ax
test ah, 0x45
jne 0x45fba5
mov edi, dword [ebp + 0x188]
xor bl, bl
movzx eax, byte [edi + 0x123]
sub eax, 2
cmp eax, 0x18
ja case.0x45fb70.5
jmp dword [eax*4 + 0x5f0c34]
mov bl, 1
test bl, bl
je 0x45fb91
lea esi, [ebp + 0x5c]
push 0
push dword [0x5f0458]
push dword [0x5f04ac]
push esi
jmp 0x45fbb7
lea edx, [ebp + 0x5c]
push 0
push dword [0x5f045c]
push dword [0x5f0460]
push edx
jmp 0x45fbb7
push 0
push dword [0x5f045c]
lea ecx, [ebp + 0x5c]
push dword [0x5f0460]
push ecx
lea eax, [ebp + 0x58]
fld st(4)
push eax
push eax
fstp dword [esp]
fcompp
fcompp
fstp st(0)
call fcn.00456f40
add esp, 0x18
mov byte [0x628ab5], 0
jmp 0x45fc6a
cmp byte [0x628ab5], 0
jne 0x45fc00
mov eax, dword [0x885b48]
mov byte [0x628ab5], 1
mov dword [0x628ab0], eax
jmp 0x45ff20
mov eax, dword [0x885b48]
sub eax, dword [0x628ab0]
test eax, eax
je 0x45ff30
fld st(4)
fcomp dword [0x5f0414]
fnstsw ax
test ah, 0x45
jne 0x45fc40
lea eax, [ebp + 0x58]
lea edi, [ebp + 0x5c]
fld st(4)
push 0
push dword [0x5f0644]
push dword [0x5f0460]
push edi
push eax
push eax
fstp dword [esp]
jmp 0x45fc5c
lea eax, [ebp + 0x58]
lea esi, [ebp + 0x5c]
push 0
push dword [0x5f0644]
push dword [0x5f0460]
push esi
push eax
push dword [0x5f0414]
fcompp
fcompp
fstp st(0)
call fcn.00456f40
add esp, 0x18
fld dword [ebp + 0x154]
fadd dword [ebp + 0x58]
xor bl, bl
fstp dword [ebp + 0x154]
mov dword [esp + 0x110], 0
fld dword [ebp + 0x60]
fcomp dword [0x5f0774]
fnstsw ax
test ah, 0x45
jne 0x45fca8
fld dword [ebp + 0x58]
fcomp dword [0x5f0448]
fnstsw ax
test ah, 0x45
jne 0x45fca8
mov bl, 1
cmp byte [esp + 0xc], 0
jne 0x45fcbd
cmp byte [ebp + 0xa], 0
jne 0x45fcbd
test bl, bl
je 0x45ff40
lea eax, [esp + 0xe8]
lea edx, [esp + 0x110]
lea ecx, [ebp + 0x14c]
push 1
push 1
push 0
push 1
push 0
push 0
push 1
push edx
push eax
lea eax, [esp + 0xb0]
push ecx
push eax
call fcn.004af970
add esp, 0x2c
test al, al
fldz
je 0x45ff50
fld dword [esp + 0xe8]
fstp dword [ebp + 0x14c]
fld dword [esp + 0xec]
fstp dword [ebp + 0x150]
fld dword [esp + 0xf0]
fstp dword [ebp + 0x154]
fld dword [esp + 0x8c]
fsub dword [ebp + 0x14c]
lea edi, [esp + 0x114]
fstp dword [esp + 0x138]
fld dword [esp + 0x90]
fsub dword [ebp + 0x150]
lea esi, [esp + 0x138]
fstp dword [esp + 0x13c]
fld dword [esp + 0x94]
fsub dword [ebp + 0x154]
fstp dword [esp + 0x140]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x118]
fst st(1)
fmul st(0)
fld dword [esp + 0x114]
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fst st(1)
fcomp dword [0x5f0410]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45ff57
mov eax, dword [0x72676c]
push dword [0x5f0458]
push eax
fstp st(0)
call fcn.005a5070
fldz
fldz
pop ecx
pop ecx
fld dword [ebp + 0x58]
fmul dword [0x5f0464]
fstp st(2)
fld dword [0x5f0410]
fcomp st(2)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x45fdf0
fld dword [0x5f0410]
jmp 0x45fdf2
fld st(1)
fstp st(2)
fld dword [esp + 0x94]
fadd st(2)
fstp dword [esp + 0x94]
fld dword [esp + 0x8c]
fstp dword [ebp + 0xf8]
fld dword [esp + 0x90]
fstp dword [ebp + 0xfc]
fld dword [esp + 0x94]
fstp dword [ebp + 0x100]
fld dword [esp + 0x94]
fsub dword [ebp + 0x154]
fstp st(1)
fld dword [esp + 0x90]
fsub dword [ebp + 0x150]
fstp st(2)
fld dword [esp + 0x8c]
fsub dword [ebp + 0x14c]
fstp dword [ebp + 0x140]
fld st(1)
fstp dword [ebp + 0x144]
fst dword [ebp + 0x148]
fld dword [ebp + 0x144]
fstp st(2)
fld st(1)
fmul st(0)
fld dword [ebp + 0x140]
fstp st(3)
fld st(2)
fmul st(0)
faddp st(1)
fsqrt
fstp dword [esp + 0x80]
fld dword [esp + 0x80]
fstp st(2)
fld st(1)
fstp dword [ebp + 0x8c]
fld dword [ebp + 0x8c]
fstp dword [ebp + 0x7c]
fcompp
lea ecx, [ebp + 0x140]
call fcn.004ba560
mov ecx, ebp
call fcn.004582f0
cmp byte [esp + 0x10], 0
mov byte [0x6fad46], 0
mov byte [0x6fad47], 0
je 0x45fee0
mov byte [0x628a9d], 1
jmp 0x45fee7
mov byte [0x628a9d], 0
mov byte [ebp + 0xa], 0
add esp, 0x168
pop ebp
pop edi
pop esi
pop ebx
ret 0x10
fstp st(0)
jmp 0x45e998
fcompp
fcompp
fstp st(0)
jmp 0x45f088
fcompp
fcompp
fstp st(0)
jmp 0x45f088
fcompp
fcompp
fstp st(0)
jmp 0x45fc6a
fcompp
fcompp
fstp st(0)
jmp 0x45fc6a
fldz
fldz
jmp 0x45fdc5
fldz
jmp 0x45fdc5
fldz
jmp 0x45fdc5
fstp st(0)
jmp 0x45feeb