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

Disassembly:
push ebx
push ebp
sub esp, 0x58
mov ebx, dword [esp + 0x64]
movsx eax, byte [ebx + 0x15b]
dec eax
test eax, eax
ja 0x4188f8
jmp dword [eax*4 + 0x5ecb6c]
push ebx
call fcn.004191e0
mov ebp, dword [ebx + 0x138]
pop ecx
add ebp, dword [ebx + 0x13c]
xor eax, eax
mov ecx, ebp
mov edx, dword [0x885b48]
sar ecx, 0x1f
cmp eax, ecx
jl 0x418929
jne 0x418922
cmp edx, ebp
jb 0x418929
push ebx
call fcn.0041ba50
pop ecx
mov cl, byte [ebx + 0x50]
shr cl, 3
movzx eax, cl
fldz
fldz
cmp eax, 3
fldz
fldz
fldz
je 0x418c00
mov edx, dword [0x885b48]
mov dword [esp + 0xc], 0
sub edx, dword [ebx + 0x138]
mov ebp, 0x8f6754
mov eax, edx
mov dword [esp + 8], edx
mov dword [esp + 8], eax
fild qword [esp + 8]
fidiv dword [ebx + 0x13c]
fstp dword [esp + 4]
mov dl, byte [ebx + 0x155]
movsx eax, dl
movsx ecx, dl
mov dword [esp + 8], eax
mov eax, dword [ebx + 0x140]
fild dword [esp + 8]
lea eax, [eax*8]
lea eax, [eax + eax*2]
mov dword [esp + 8], ecx
fmul dword [eax + 0x91cf9c]
mov dl, byte [ebx + 0x156]
add ebp, eax
movsx ecx, dl
fstp st(5)
fild dword [esp + 8]
mov dword [esp + 8], ecx
mov ecx, dword [ebx + 0x144]
lea ecx, [ecx*8]
add ebp, 0x26840
fmul dword [eax + 0x91cfa0]
lea ecx, [ecx + ecx*2]
movsx edx, dl
fstp st(4)
fild dword [esp + 8]
mov dword [esp + 8], edx
mov dl, byte [ebp + 0x12]
test dl, dl
fmul dword [ecx + 0x91cf9c]
fstp st(3)
fild dword [esp + 8]
fmul dword [ecx + 0x91cfa0]
fstp st(2)
jne 0x418a20
movsx eax, byte [ebp + 0x13]
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(1)
jmp 0x418a48
cmp byte [ebp + 0x13], 0
jne 0x418a40
movsx eax, dl
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x418a46
fld dword [0x5ec900]
fstp st(1)
movsx eax, byte [ebx + 0x157]
mov dword [esp + 8], eax
mov eax, 0x8f6754
fild dword [esp + 8]
add eax, ecx
add eax, 0x26840
fadd st(1)
fmul dword [0x5ec8e4]
fstp dword [esp]
mov dl, byte [eax + 0x12]
test dl, dl
jne 0x418a91
movsx eax, byte [eax + 0x13]
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
fstp st(1)
jmp 0x418ab8
cmp byte [eax + 0x13], 0
jne 0x418ab0
movsx eax, dl
mov dword [esp + 8], eax
fild dword [esp + 8]
fmul dword [0x5ec900]
fsubr dword [0x5ec900]
jmp 0x418ab6
fld dword [0x5ec900]
fstp st(1)
movsx eax, byte [ebx + 0x158]
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 8], eax
lea edx, [esp + 0x10]
fild dword [esp + 8]
fadd st(1)
fmul dword [0x5ec8e4]
fstp st(1)
fld st(2)
fstp dword [esp + 0x4c]
fld st(1)
fstp dword [esp + 0x50]
fld st(4)
fstp dword [esp + 0x40]
fld st(3)
fstp dword [esp + 0x44]
mov eax, dword [ebx + 0x144]
lea ecx, [esp + 0x4c]
lea eax, [eax*8]
lea eax, [eax + eax*2]
fld st(2)
fmul st(1)
fsubr dword [eax + 0x91cf98]
fstp st(3)
fld st(1)
fmul st(1)
fadd dword [eax + 0x91cf94]
fstp dword [esp + 0x34]
fld st(2)
fstp dword [esp + 0x38]
fld st(4)
mov eax, dword [ebx + 0x140]
fmul dword [esp]
lea eax, [eax*8]
lea eax, [eax + eax*2]
fsubr dword [eax + 0x91cf98]
fstp st(5)
fld st(3)
fmul dword [esp]
fadd dword [eax + 0x91cf94]
lea eax, [esp + 0x1c]
push eax
push edx
fstp dword [esp + 0x30]
fld st(4)
fstp dword [esp + 0x34]
mov eax, dword [ebx + 0x13c]
lea edx, [esp + 0x3c]
push eax
lea eax, [esp + 0x4c]
fcompp
fcompp
push dword [esp + 0x10]
push ecx
push eax
lea eax, [esp + 0x40]
push edx
push eax
fstp st(0)
call fcn.004204d0
lea eax, [esp + 0x30]
add esp, 0x20
push eax
push ebx
mov dword [esp + 0x20], 0x41700000
call fcn.0041d450
fld dword [esp + 0x24]
fmul dword [0x5ec91c]
pop ecx
pop ecx
fstp dword [esp + 0x1c]
fld dword [esp + 0x20]
fmul dword [0x5ec91c]
fstp dword [esp + 0x20]
fld dword [esp + 0x24]
fmul dword [0x5ec91c]
fstp dword [esp + 0x24]
fld dword [esp + 0x1c]
fstp dword [ebx + 0x78]
fld dword [esp + 0x20]
fstp dword [ebx + 0x7c]
fld dword [esp + 0x24]
fstp dword [ebx + 0x80]
add esp, 0x58
pop ebp
pop ebx
ret
fcompp
fcompp
fstp st(0)
jmp 0x418bf9