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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x15c
mov eax, dword [section..data]
xor eax, esp
mov dword [esp + 0x158], eax
mov eax, dword [ebp + 8]
fldz
push ebx
fst qword [esp + 0x40]
push esi
fstp qword [esp + 0x3c]
push edi
mov dword [esp + 0x34], eax
xor eax, eax
mov esi, ecx
push 0x58
push 1
mov dword [esp + 0x38], esi
lea ebx, [esp + 0x68]
mov dword [esp + 0x24], eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x14], eax
call fcn.0041b34e
mov edi, eax
mov eax, dword [esp + 0x3c]
pop ecx
pop ecx
test eax, eax
je 0x41862d
mov dword [eax], edi
fldz
and dword [esp + 0xb0], 0
and dword [esp + 0xb4], 0
fst qword [esp + 0x68]
fstp qword [esp + 0x70]
lea eax, [esi + 8]
fld qword [0x43c760]
mov dword [edi + 0x48], 0x270f
fstp qword [edi + 0x10]
fld qword [0x43c750]
fstp qword [edi + 8]
mov esi, dword [eax]
mov ecx, dword [esi]
mov dword [esp + 0x2c], ecx
cmp esi, eax
je 0x418928
fld qword [0x43c7f0]
mov eax, dword [esi + 0x50]
fld qword [0x43c700]
sub eax, dword [ebx + 0x50]
fld qword [esi + 8]
fmul st(2)
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x54]
sbb eax, dword [ebx + 0x54]
fdiv st(1)
sub esp, 0x20
mov dword [esp + 0x5c], eax
fstp qword [esp + 0x78]
fld qword [esi + 0x10]
fmul st(2)
fdiv st(1)
fstp qword [esp + 0x40]
fld qword [ebx + 8]
fmul st(2)
fdiv st(1)
fstp qword [esp + 0x30]
fld qword [ebx + 0x10]
fmulp st(2)
fdivp st(1)
fstp qword [esp + 0x70]
fld qword [esp + 0x40]
fstp qword [esp + 0x18]
fld qword [esp + 0x78]
fstp qword [esp + 0x10]
fld qword [esp + 0x70]
fstp qword [esp + 8]
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.0040b459
fstp dword [esi + 0x6c]
fld qword [esp + 0x40]
or dword [esi + 0x48], 0x40
fstp qword [esp + 0x18]
fld qword [esp + 0x78]
fstp qword [esp + 0x10]
fld qword [esp + 0x70]
fstp qword [esp + 8]
fld qword [esp + 0x30]
fstp qword [esp]
call fcn.0040b2ae
fmul qword [0x42bba0]
add esp, 0x20
fstp qword [esp + 0x20]
fld qword [esp + 0x10]
fldz
fld st(0)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jnp 0x418748
fld qword [esp + 0x50]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x41874a
fld qword [edi]
fadd qword [esp + 0x20]
fstp qword [edi]
jmp 0x41874a
fstp st(0)
mov eax, dword [esp + 0x38]
or eax, dword [esp + 0x3c]
je 0x4187ae
fld1
fcomp qword [esp + 0x20]
fnstsw ax
test ah, 5
jp 0x4187ae
test byte [esi + 0x48], 0x80
jne 0x418788
push dword [esp + 0x38]
call dword [sym.imp.MSVCR100.dll_labs]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
or dword [esi + 0x48], 0x80
pop ecx
fdivr qword [esp + 0x20]
fstp dword [esi + 0x70]
fld dword [esi + 0x70]
fcomp qword [edi + 0x18]
fnstsw ax
test ah, 0x41
jne 0x41879b
fld dword [esi + 0x70]
fstp qword [edi + 0x18]
fld dword [esi + 0x70]
fcomp qword [edi + 0x20]
fnstsw ax
test ah, 5
jp 0x4187ae
fld dword [esi + 0x70]
fstp qword [edi + 0x20]
fld qword [esi + 0x18]
fld qword [0x43c750]
fucompp
fnstsw ax
test ah, 0x44
jnp 0x4187e6
fld qword [edi + 0x10]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 0x41
jne 0x4187d3
fld qword [esi + 0x18]
fstp qword [edi + 0x10]
fld qword [edi + 8]
fcomp qword [esi + 0x18]
fnstsw ax
test ah, 5
jp 0x4187e6
fld qword [esi + 0x18]
fstp qword [edi + 8]
mov al, byte [esi + 0x7c]
test al, al
je 0x418813
inc dword [esp + 0x18]
movzx ecx, al
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd qword [esp + 0x48]
fstp qword [esp + 0x48]
test al, al
je 0x418813
movzx eax, al
cmp eax, dword [edi + 0x48]
jge 0x418813
mov dword [edi + 0x48], eax
mov al, byte [esi + 0x7c]
test al, al
je 0x418825
movzx eax, al
cmp eax, dword [edi + 0x4c]
jle 0x418825
mov dword [edi + 0x4c], eax
mov al, byte [esi + 0x7d]
test al, al
je 0x418852
inc dword [esp + 0xc]
movzx ecx, al
mov dword [esp + 0x10], ecx
fild dword [esp + 0x10]
fadd qword [esp + 0x40]
fstp qword [esp + 0x40]
test al, al
je 0x418852
movzx eax, al
cmp eax, dword [edi + 0x50]
jle 0x418852
mov dword [edi + 0x50], eax
mov eax, dword [esi + 0x50]
mov ecx, dword [esi + 0x54]
mov edx, eax
or edx, ecx
je 0x418870
cmp ecx, dword [edi + 0x3c]
jg 0x418870
jl 0x41886a
cmp eax, dword [edi + 0x38]
jae 0x418870
mov dword [edi + 0x38], eax
mov dword [edi + 0x3c], ecx
mov eax, dword [esi + 0x54]
mov ecx, dword [esi + 0x50]
cmp eax, dword [edi + 0x44]
jl 0x41889b
jg 0x418882
cmp ecx, dword [edi + 0x40]
jbe 0x41889b
mov dword [edi + 0x44], eax
mov eax, dword [edi + 0x38]
or eax, dword [edi + 0x3c]
mov dword [edi + 0x40], ecx
jne 0x41889b
mov eax, ecx
mov dword [edi + 0x38], eax
mov eax, dword [edi + 0x44]
mov dword [edi + 0x3c], eax
mov eax, dword [esi + 0x30]
mov ebx, esi
test eax, eax
je 0x4188a9
cmp byte [eax], 0
jne 0x4188e7
mov eax, dword [esp + 0x30]
mov eax, dword [eax + 0x10]
test eax, eax
jne 0x4188b9
mov eax, 0x42b2c4
push dword [esp + 0x1c]
push eax
push str._s__d
lea eax, [esp + 0x104]
push 0x64
push eax
call dword [sym.imp.MSVCR100.dll__snprintf]
add esp, 0x14
lea eax, [esp + 0xf8]
push eax
call fcn.0041b375
pop ecx
mov dword [esi + 0x30], eax
mov esi, dword [esp + 0x2c]
mov eax, dword [esi]
inc dword [esp + 0x1c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x30]
add eax, 8
cmp esi, eax
jne 0x418673
cmp dword [esp + 0x18], 0
jle 0x418916
fild dword [esp + 0x18]
fdivr qword [esp + 0x48]
fstp qword [edi + 0x28]
cmp dword [esp + 0xc], 0
jle 0x418928
fild dword [esp + 0xc]
fdivr qword [esp + 0x40]
fstp qword [edi + 0x30]
cmp dword [esp + 0x34], 0
jne 0x418937
push edi
call dword [sym.imp.MSVCR100.dll_free]
pop ecx
mov ecx, dword [esp + 0x164]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042978e
mov esp, ebp
pop ebp
ret