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

Disassembly:
push ebx
push esi
mov ebx, ecx
push edi
push ebp
sub esp, 0xa0
fld dword [ebx + 0x20]
fld dword [ebx + 0x1c]
fld st(1)
fcomp dword [0x696aa4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x54e300
fld st(1)
fchs
jmp 0x54e302
fld st(1)
fstp st(2)
fcom dword [0x696aa4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x54e316
fchs
fld st(0)
fadd st(2)
fmul dword [0x696b08]
push 0x7e4eb0
push 1
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fmul dword [0x696a9c]
fstp dword [esp + 0x34]
fld dword [ebx + 0x10]
fstp st(1)
fld dword [ebx + 0xc]
fstp st(2)
fld dword [ebx + 8]
fstp dword [esp + 0x9c]
fld st(1)
lea eax, [esp + 0x9c]
lea edx, [esp + 0x9c]
fstp dword [esp + 0xa0]
fst dword [esp + 0xa4]
fcompp
push edx
push eax
call fcn.006471b0
fldz
fldz
fld dword [esp + 0xa8]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [esp + 0x2c]
fcomp dword [0x97853c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x54e3a1
xor al, al
jmp 0x54e462
fld st(1)
fsub dword [esp + 0x2c]
fcomp dword [0xa10680]
fnstsw ax
test ah, 0x45
jne 0x54e3c0
xor al, al
jmp 0x54e462
fld st(1)
fmul dword [0x7e4f4c]
fld dword [esp + 0x94]
fmul dword [0x7e4f48]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e3e6
xor al, al
jmp 0x54e462
fld st(1)
fmul dword [0x7e4f58]
fld dword [esp + 0x94]
fmul dword [0x7e4f54]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e410
xor al, al
jmp 0x54e462
fld dword [esp + 0x9c]
fst st(1)
fmul dword [0x7e4f68]
fld st(2)
fmul dword [0x7e4f64]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e438
xor al, al
jmp 0x54e462
fld st(0)
fmul dword [0x7e4f74]
fld st(2)
fmul dword [0x7e4f70]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e460
xor al, al
jmp 0x54e462
mov al, 1
test al, al
je 0x54e7f8
fcompp
call fcn.00577790
mov al, byte [ebx + 0x56]
and eax, 0xff
fld dword [ebx + 0x28]
mov dword [esp + 0x30], eax
fild dword [esp + 0x30]
push 0
push 8
fmul st(1)
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x30]
mov dword [esp + 0x18], eax
mov al, byte [ebx + 0x57]
and eax, 0xff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul st(1)
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x30]
mov dword [esp + 0x20], eax
mov al, byte [ebx + 0x58]
and eax, 0xff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul st(1)
fnstcw word [esp + 0x30]
mov eax, dword [esp + 0x30]
or byte [esp + 0x31], 0xc
fldcw word [esp + 0x30]
mov dword [esp + 0x30], eax
fistp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
fldcw word [esp + 0x30]
mov dword [esp + 0x24], eax
movzx eax, byte [esp + 0x18]
fstp st(0)
cmp eax, 0x80000000
mov dword [esp + 0x14], eax
movzx eax, byte [esp + 0x20]
sbb dword [esp + 0x14], 0xffffffff
sar dword [esp + 0x14], 1
cmp eax, 0x80000000
mov dword [esp + 0x1c], eax
movzx eax, byte [esp + 0x24]
sbb dword [esp + 0x1c], 0xffffffff
sar dword [esp + 0x1c], 1
cmp eax, 0x80000000
mov dword [esp + 0x28], eax
sbb dword [esp + 0x28], 0xffffffff
sar dword [esp + 0x28], 1
call fcn.00649bf0
pop ecx
pop ecx
push 1
push 0xc
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 0xa
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649bf0
pop ecx
pop ecx
push 2
push 9
call fcn.00649bf0
mov edi, dword [0x695538]
pop ecx
mov eax, dword [edi]
pop ecx
push eax
push 1
call fcn.00649bf0
pop ecx
pop ecx
push 1
push 6
call fcn.00649bf0
mov ebp, 1
pop ecx
pop ecx
lea eax, [eax]
mov dword [esp + 8], ebp
mov dword [esp + 4], 0
lea eax, [eax]
mov eax, dword [esp + 8]
and eax, 0x1f
je 0x54e7bf
movzx eax, byte [ebx + ebp + 0x2c]
mov edx, 1
mov ecx, dword [esp + 4]
shl edx, cl
and eax, edx
je 0x54e6c5
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 4]
fild dword [esp + 0x30]
lea edi, [esp + 0x3c]
push 1
fmul dword [ebx + 0x1c]
fadd dword [ebx + 8]
mov dword [esp + 0x34], ebp
fstp dword [esp + 0x80]
fild dword [esp + 0x34]
lea esi, [esp + 0x80]
fmul dword [ebx + 0x20]
fadd dword [ebx + 0xc]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x84]
fild dword [esp + 0x34]
fmul dword [ebx + 0x24]
fadd dword [ebx + 0x10]
fstp dword [esp + 0x88]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x58]
lea esi, [esp + 0x5c]
lea edx, [esp + 0x4c]
push esi
push eax
lea eax, [esp + 0x48]
push edx
push eax
call fcn.005778d0
add esp, 0x14
test al, al
fldz
fldz
je 0x54e7f0
fld dword [esp + 0x50]
fstp st(1)
fld dword [0x696a38]
fdiv st(1)
push 0xff
push eax
fstp dword [esp]
fld dword [ebx + 0x5c]
mov al, byte [esp + 0x24]
mov cl, byte [esp + 0x20]
push 0xff
push eax
mov al, byte [esp + 0x20]
fstp st(2)
fld dword [esp + 0x68]
push ecx
push eax
push eax
fmul st(2)
fstp dword [esp]
push eax
fld dword [esp + 0x74]
fmul st(2)
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x70]
push dword [esp + 0x70]
jmp 0x54e7b5
movzx eax, byte [ebx + ebp + 0x2b]
and eax, edx
je 0x54e7bf
mov dword [esp + 0x30], ebp
mov eax, dword [esp + 4]
fild dword [esp + 0x30]
lea edi, [esp + 0x5c]
push 1
fmul dword [ebx + 0x1c]
fadd dword [ebx + 8]
mov dword [esp + 0x34], ebp
fstp dword [esp + 0x8c]
fild dword [esp + 0x34]
lea esi, [esp + 0x8c]
fmul dword [ebx + 0x20]
fadd dword [ebx + 0xc]
mov dword [esp + 0x34], eax
fstp dword [esp + 0x90]
fild dword [esp + 0x34]
fmul dword [ebx + 0x24]
fadd dword [ebx + 0x10]
fstp dword [esp + 0x94]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x78]
lea edi, [esp + 0x7c]
lea esi, [esp + 0x6c]
push edi
push eax
lea eax, [esp + 0x68]
push esi
push eax
call fcn.005778d0
add esp, 0x14
test al, al
fldz
fldz
je 0x54e7f4
fld dword [esp + 0x70]
fstp st(1)
fld dword [0x696a38]
fdiv st(1)
push 0xff
push eax
fstp dword [esp]
fld dword [ebx + 0x5c]
fstp st(2)
fld dword [esp + 0x80]
fmul st(2)
fmul dword [0x696b0c]
mov al, byte [esp + 0x28]
mov dl, byte [esp + 0x1c]
push 0xff
push eax
mov al, byte [esp + 0x1c]
push edx
push eax
push eax
fstp dword [esp]
fld dword [esp + 0x90]
fmul st(2)
fmul dword [0x696b0c]
push eax
fstp dword [esp]
push eax
fst dword [esp]
push dword [esp + 0x90]
push dword [esp + 0x90]
fcompp
call fcn.00577370
add esp, 0x2c
inc dword [esp + 4]
add dword [esp + 8], 5
cmp dword [esp + 4], 5
jl 0x54e5d0
inc ebp
cmp ebp, 0x28
jl 0x54e5c0
call fcn.005777b0
add esp, 0xa0
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x54e7bf
fcompp
jmp 0x54e7bf
fcompp
jmp 0x54e7e2