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

Disassembly:
push ebp
push edi
push esi
mov esi, edx
push ebx
mov ebx, eax
sub esp, 0xec
mov edi, dword [edx]
mov ebp, dword [esp + 0x100]
cmp edi, 0x1e
je 0x45bb64
mov dword [esp + 4], ebp
mov esi, dword [esi + 0x14]
lea edx, [eax + 0xb0]
mov ecx, edi
lea eax, [eax + 0x9c]
mov dword [esp], esi
call sym._determine_precision.isra.2
add esp, 0xec
pop ebx
pop esi
pop edi
pop ebp
ret
cmp ebp, 8
je 0x45bef4
jle 0x45bd30
cmp ebp, 0xa
je 0x45be20
cmp ebp, 0x10
jne 0x45c3c5
mov edi, dword [ecx]
mov edx, dword [ecx + 4]
mov dword [esp + 0xd0], 0
mov dword [esp + 0xd4], 0
mov eax, dword [ecx + 8]
mov dword [esp + 0xd8], 0
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0xdc], 0x3fff0000
mov dword [esp + 0xc0], edi
mov dword [esp + 0xc4], edx
mov dword [esp + 0xc8], eax
mov dword [esp + 0xcc], ecx
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov eax, dword [esp + 0xc8]
mov dword [esp + 0x10], 0xffffffff
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
and edi, 0x7fffffff
mov dword [esp + 0x1c], 0x7ffeffff
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
mov dword [esp + 0x38], ecx
mov dword [esp + 0x34], edx
mov dword [esp + 0x30], eax
call dbg.__unordtf2
test eax, eax
jne 0x45bffa
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x34]
mov dword [esp + 0x10], 0xffffffff
mov eax, dword [esp + 0x30]
mov dword [esp + 0x14], 0xffffffff
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x1c], 0x7ffeffff
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], edi
call dbg.__getf2
test eax, eax
jg 0x45bffa
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov dword [esp + 0xc], 0
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [esp + 8], str.__.Qe
mov dword [esp + 0x14], ecx
mov dword [esp + 0x1c], eax
lea eax, [esp + 0x96]
mov dword [esp + 0x18], edx
mov dword [esp + 0x10], edi
mov dword [esp + 4], 0xa
mov dword [esp], eax
call sym._quadmath_snprintf
mov dword [esp + 0x30], eax
lea eax, [esp + 0x9a]
mov dword [esp], eax
call sym._atoi
cmp byte [esp + 0x97], 0x31
mov dword [esp + 0x34], eax
je 0x45c004
mov eax, dword [esp + 0x34]
mov edi, dword [esp + 0x34]
mov edx, 0x55555556
imul edx
mov eax, edi
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub edi, eax
mov edx, edi
lea eax, [edi + 3]
cmovs edx, eax
jmp 0x45bebd
cmp ebp, 4
jne 0x45c3c5
fld dword [ecx]
mov dword [esp + 0x7c], 0x3f800000
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fabs
fld dword [0x46c2c4]
fucompi st(1)
fstp st(0)
jb 0x45bffa
fld dword [esp + 0x78]
lea eax, [esp + 0x96]
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.__.e
mov dword [esp + 4], 0xa
fstp qword [esp + 0x10]
mov dword [esp], eax
call sym.___mingw_snprintf
mov dword [esp + 0x30], eax
lea eax, [esp + 0x9a]
mov dword [esp], eax
call sym._atoi
cmp byte [esp + 0x97], 0x31
mov ecx, eax
jne 0x45bea0
sar eax, 0x1f
mov edx, eax
xor edx, ecx
sub edx, eax
test ecx, ecx
je 0x45c3b7
xor eax, eax
fld1
add eax, 1
fmul dword [0x46c2c8]
cmp eax, edx
jne 0x45bdc4
test ecx, ecx
jle 0x45bde1
fld1
fdivrp st(1)
fstp dword [esp + 0x6c]
fld dword [esp + 0x6c]
fld dword [esp + 0x78]
fmulp st(1)
fstp dword [esp + 0x78]
fld dword [esp + 0x7c]
fld dword [esp + 0x78]
fldz
fcompi st(1)
fstp st(0)
fld dword [esp + 0x78]
jbe 0x45be01
fchs
fsubp st(1)
xor eax, eax
fstp dword [esp + 0x78]
fld dword [esp + 0x78]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
seta al
sub ecx, eax
jmp 0x45bea0
fld1
fstp xword [esp + 0xb0]
fld xword [ecx]
fstp xword [esp + 0xa0]
fld xword [esp + 0xa0]
fabs
fld xword [0x46c2e0]
fucompi st(1)
fstp st(0)
jb 0x45bffa
fld xword [esp + 0xa0]
lea eax, [esp + 0x96]
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.__.Le
mov dword [esp + 4], 0xa
fstp xword [esp + 0x10]
mov dword [esp], eax
call sym.___mingw_snprintf
mov dword [esp + 0x30], eax
lea eax, [esp + 0x9a]
mov dword [esp], eax
call sym._atoi
cmp byte [esp + 0x97], 0x31
mov ecx, eax
je 0x45c314
mov eax, ecx
mov edx, 0x55555556
imul edx
mov eax, ecx
sar eax, 0x1f
sub edx, eax
lea eax, [edx + edx*2]
sub ecx, eax
mov edx, ecx
lea eax, [ecx + 3]
cmovs edx, eax
cmp dword [esp + 0x30], 0xffffffff
je 0x45bffa
mov eax, dword [esi + 0x14]
add eax, edx
mov edx, dword [ebx + 0x9c]
mov edx, dword [edx + 0x84]
sub edx, 0xb
cmp edx, 1
jbe 0x45bb59
add esp, 0xec
lea eax, [eax + ebp*2 + 4]
pop ebx
pop esi
pop edi
pop ebp
ret
fld1
fstp qword [esp + 0x88]
fld qword [ecx]
fstp qword [esp + 0x80]
fld qword [esp + 0x80]
fabs
fld qword [0x46c2d0]
fucompi st(1)
fstp st(0)
jb 0x45bffa
fld qword [esp + 0x80]
lea eax, [esp + 0x96]
mov dword [esp + 0xc], 0
mov dword [esp + 8], str.__.e
mov dword [esp + 4], 0xa
mov dword [esp], eax
fstp qword [esp + 0x10]
call sym.___mingw_snprintf
mov dword [esp + 0x30], eax
lea eax, [esp + 0x9a]
mov dword [esp], eax
call sym._atoi
cmp byte [esp + 0x97], 0x31
mov ecx, eax
jne 0x45bea0
sar eax, 0x1f
mov edx, eax
xor edx, ecx
sub edx, eax
test ecx, ecx
je 0x45c3be
xor eax, eax
fld1
lea esi, [esi]
add eax, 1
fmul dword [0x46c2c8]
cmp eax, edx
jne 0x45bf90
test ecx, ecx
jle 0x45bfa7
fdivr dword [0x46c2c0]
fld qword [esp + 0x80]
fmulp st(1)
fstp qword [esp + 0x80]
fld qword [esp + 0x88]
fld qword [esp + 0x80]
fldz
fcompi st(1)
fstp st(0)
fld qword [esp + 0x80]
jbe 0x45bfd6
fchs
fsubp st(1)
xor eax, eax
fstp qword [esp + 0x80]
fld qword [esp + 0x80]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
seta al
sub ecx, eax
jmp 0x45bea0
mov eax, 0xffffffff
jmp 0x45bb59
mov edi, eax
sar eax, 0x1f
mov ecx, edi
xor ecx, eax
sub ecx, eax
mov dword [esp + 0x3c], ecx
test edi, edi
je 0x45c393
lea edi, [esp + 0x50]
xor ecx, ecx
mov dword [esp + 0x44], esi
mov esi, dword [esp + 0x3c]
mov dword [esp + 0x38], edi
xor edx, edx
mov eax, 0x3fff0000
xor edi, edi
mov dword [esp + 0x100], ebp
mov ebp, dword [esp + 0x38]
mov dword [esp + 0x40], ebx
mov ebx, ecx
mov esi, esi
lea edi, [edi]
mov dword [esp + 0x10], ebx
add edi, 1
mov dword [esp + 0x14], ecx
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x20], 0
mov dword [esp + 0x24], 0
mov dword [esp + 0x28], 0
mov dword [esp + 0x2c], 0x40024000
mov dword [esp], ebp
call dbg.__multf3
mov ebx, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
cmp edi, esi
jne 0x45c050
mov edi, dword [esp + 0x34]
mov esi, dword [esp + 0x44]
mov dword [esp + 0x3c], ebx
mov ebp, dword [esp + 0x100]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x40], ecx
test edi, edi
jle 0x45c116
mov edi, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x28], edx
mov dword [esp + 0x20], edi
mov dword [esp], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0x3fff0000
call dbg.__divtf3
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x2c], eax
mov dword [esp + 0x28], edx
mov dword [esp + 0x44], edi
mov edi, dword [esp + 0xc4]
mov eax, dword [esp + 0x44]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x48], edi
mov edi, dword [esp + 0xc8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x4c], edi
mov ecx, dword [esp + 0x40]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x4c]
mov edi, dword [esp + 0xcc]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x38]
mov dword [esp + 0x1c], edi
mov dword [esp], eax
call dbg.__multf3
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], 0
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xcc], eax
mov eax, dword [esp + 0xd0]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0xd4]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0xd8]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0xc4]
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0xc8]
mov edi, dword [esp + 0xcc]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 0xc], edi
mov dword [esp + 8], eax
call dbg.__letf2
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
test eax, eax
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
jns 0x45c24b
add eax, 0x80000000
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x3c]
mov dword [esp + 0x20], edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x40]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], edx
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x38]
mov dword [esp], eax
call dbg.__subtf3
mov eax, dword [esp + 0x50]
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0xc0], eax
mov eax, dword [esp + 0x54]
mov dword [esp + 0x18], 0
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x1c], 0
mov dword [esp + 0xc8], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0xcc], eax
mov edi, dword [esp + 0xc0]
mov ecx, dword [esp + 0xc4]
mov edx, dword [esp + 0xc8]
mov eax, dword [esp + 0xcc]
mov dword [esp], edi
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
call dbg.__getf2
test eax, eax
setg al
movzx eax, al
sub dword [esp + 0x34], eax
jmp 0x45bd02
sar eax, 0x1f
mov edx, eax
xor edx, ecx
sub edx, eax
test ecx, ecx
je 0x45c38f
xor eax, eax
fld1
add eax, 1
fmul dword [0x46c2c8]
cmp eax, edx
jne 0x45c325
test ecx, ecx
jle 0x45c33c
fdivr dword [0x46c2c0]
fld xword [esp + 0xa0]
fmulp st(1)
fstp xword [esp + 0xa0]
fld xword [esp + 0xb0]
fld xword [esp + 0xa0]
fldz
fcompi st(1)
fstp st(0)
fld xword [esp + 0xa0]
jbe 0x45c36b
fchs
fsubp st(1)
xor eax, eax
fstp xword [esp + 0xa0]
fld xword [esp + 0xa0]
fldz
fxch st(1)
fcompi st(1)
fstp st(0)
seta al
sub ecx, eax
jmp 0x45bea0
fld1
jmp 0x45c33c
lea edi, [esp + 0x50]
mov dword [esp + 0x3c], 0
xor edx, edx
mov eax, 0x3fff0000
mov dword [esp + 0x40], 0
mov dword [esp + 0x38], edi
jmp 0x45c116
fld1
jmp 0x45bde1
fld1
jmp 0x45bfa7
mov dword [esp + 4], str.bad_real_kind
mov dword [esp], 0
call sym.__gfortrani_internal_error
nop
nop
nop
nop
nop
nop
nop