Function at 0x54e2b0
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 0x54e2e0
fld st(1)
fchs
jmp 0x54e2e2
fld st(1)
fstp st(2)
fcom dword [0x696aa4]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x54e2f6
fchs
fld st(0)
fadd st(2)
fmul dword [0x696b08]
push 0x7e4ea8
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.00647160
fldz
fldz
fld dword [esp + 0xa8]
fstp st(2)
add esp, 0x10
fld st(1)
fadd dword [esp + 0x2c]
fcomp dword [0x978534]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x54e381
xor al, al
jmp 0x54e442
fld st(1)
fsub dword [esp + 0x2c]
fcomp dword [0xa10678]
fnstsw ax
test ah, 0x45
jne 0x54e3a0
xor al, al
jmp 0x54e442
fld st(1)
fmul dword [0x7e4f44]
fld dword [esp + 0x94]
fmul dword [0x7e4f40]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e3c6
xor al, al
jmp 0x54e442
fld st(1)
fmul dword [0x7e4f50]
fld dword [esp + 0x94]
fmul dword [0x7e4f4c]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e3f0
xor al, al
jmp 0x54e442
fld dword [esp + 0x9c]
fst st(1)
fmul dword [0x7e4f60]
fld st(2)
fmul dword [0x7e4f5c]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e418
xor al, al
jmp 0x54e442
fld st(0)
fmul dword [0x7e4f6c]
fld st(2)
fmul dword [0x7e4f68]
faddp st(1)
fcomp dword [esp + 0x2c]
fnstsw ax
test ah, 0x45
jne 0x54e440
xor al, al
jmp 0x54e442
mov al, 1
test al, al
je 0x54e7d8
fcompp
call fcn.00577770
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.00649ba0
pop ecx
pop ecx
push 1
push 0xc
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xa
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 0xb
call fcn.00649ba0
pop ecx
pop ecx
push 2
push 9
call fcn.00649ba0
mov edi, dword [0x695538]
pop ecx
mov eax, dword [edi]
pop ecx
push eax
push 1
call fcn.00649ba0
pop ecx
pop ecx
push 1
push 6
call fcn.00649ba0
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 0x54e79f
movzx eax, byte [ebx + ebp + 0x2c]
mov edx, 1
mov ecx, dword [esp + 4]
shl edx, cl
and eax, edx
je 0x54e6a5
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.005778b0
add esp, 0x14
test al, al
fldz
fldz
je 0x54e7d0
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 0x54e795
movzx eax, byte [ebx + ebp + 0x2b]
and eax, edx
je 0x54e79f
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.005778b0
add esp, 0x14
test al, al
fldz
fldz
je 0x54e7d4
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.00577350
add esp, 0x2c
inc dword [esp + 4]
add dword [esp + 8], 5
cmp dword [esp + 4], 5
jl 0x54e5b0
inc ebp
cmp ebp, 0x28
jl 0x54e5a0
call fcn.00577790
add esp, 0xa0
pop ebp
pop edi
pop esi
pop ebx
ret
fcompp
jmp 0x54e79f
fcompp
jmp 0x54e79f
fcompp
jmp 0x54e7c2