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

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x178
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rsi, qword [rax]
mov qword [rsp + 0x168], rsi
xor esi, esi
mov rax, qword [rdx + 0x10]
mov rbx, rdx
mov r13, rcx
movabs rdx, 0x8000000000000004
mov edi, r8d
cmp rax, rdx
jl 0x3ff905f40
mov r8, rax
neg r8
add r8, r8
test r8, r8
jle 0x3ff905a19
mov rdx, qword [rcx]
add r8, 1
add rdx, 1
cmp rdx, r8
jb 0x3ff905f90
mov rdx, qword [rbx]
mov rcx, qword [0x3ff956770]
mov dword [rsp + 0x78], 1
lea r15, [rsp + 0x70]
mov qword [rsp + 0x80], rax
mov qword [rsp + 0x70], rdx
mov rdx, qword [rbx + 0x18]
mov qword [rsp + 0x88], rdx
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov qword [rsp + 0x40], rax
mov eax, dword [rax]
mov dword [rsp + 0x3c], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov rsi, rax
mov qword [rsp + 0x58], rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
call fcn.3ff93a260
xor r8d, r8d
mov r12d, dword [rbx + 8]
movabs rdx, 0x1fffffffffffffff
mov rcx, qword [rax]
mov qword [rsp + 0x60], rax
mov qword [rsp + 0x50], rcx
movabs rcx, 0xc000000000000001
mov qword [rsi], rcx
mov rcx, r15
movabs rsi, 0x3fffffffffffffff
mov qword [rax], rsi
mov rax, qword [r13]
mov qword [rsp + 0x30], rax
call sym.cygmpfr_6.dll_mpfr_cmp_ui_2exp
test eax, eax
jns 0x3ff905e88
cmp qword [rsp + 0x30], 1
je 0x3ff905f80
jle 0x3ff9424e5
mov rcx, qword [rsp + 0x30]
mov ebx, 0x40
lea rax, [rcx - 1]
bsr rax, rax
xor eax, 0x3f
sub ebx, eax
movsxd rbx, ebx
add rbx, rcx
mov rax, qword [rsp + 0x80]
add rbx, 4
mov rdx, rbx
sub rdx, rax
test rax, rax
movabs rax, 0x7ffffffffffffeff
cmovs rbx, rdx
cmp qword [rsp + 0x70], rbx
cmovge rbx, qword [rsp + 0x70]
cmp rbx, rax
jg 0x3ff9424e0
lea rsi, [rbx - 1]
sar rsi, 6
add rsi, 1
lea rax, [rsi + rsi]
cmp rax, 0x10
jg 0x3ff905d88
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rax
lea rax, [rax + rsi*8]
lea rbp, [rsp + 0xb0]
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb8], 1
mov qword [rsp + 0x68], 0x40
xor r9d, r9d
mov r8d, 1
mov rdx, r15
mov rcx, rbp
call sym.cygmpfr_6.dll_mpfr_mul_2ui
xor r8d, r8d
mov rdx, rbp
mov rcx, rbp
call sym.cygmpfr_6.dll_mpfr_exp
mov rsi, qword [rsp + 0xc0]
movabs rax, 0x8000000000000003
cmp rsi, rax
je 0x3ff905eea
mov r9d, 3
lea r14, [rsp + 0x90]
mov r8d, 1
mov rdx, rbp
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_add_ui
mov r9d, 2
mov rdx, rbp
mov rcx, rbp
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_sub_ui
xor r9d, r9d
mov r8, r14
mov rdx, rbp
sub rsi, qword [rsp + 0xc0]
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_div
cmp rsi, 2
mov eax, 2
mov r8, rbx
cmovl rsi, rax
lea rax, [rsi + 2]
sub r8, rax
mov rax, rbx
sar rax, 1
cmp rsi, rax
jge 0x3ff905db0
movabs rax, 0x8000000000000004
cmp qword [rsp + 0xa0], rax
jl 0x3ff905dc2
mov rsi, qword [rsp + 0x90]
mov rcx, qword [rsp + 0x30]
xor eax, eax
test edi, edi
sete al
lea rdx, [rsi - 1]
lea r9, [rax + rcx]
mov rcx, qword [rsp + 0xa8]
sar rdx, 6
add rdx, 1
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff905db0
mov r9d, r12d
mov r8d, edi
mov rdx, r14
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_set4
mov r12d, eax
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
jne 0x3ff905d70
mov rax, qword [rsp + 0x40]
mov ebx, dword [rsp + 0x3c]
mov rsi, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov dword [rax], ebx
mov rax, qword [rsp + 0x58]
mov qword [rax], rsi
mov rax, qword [rsp + 0x60]
mov qword [rax], rcx
mov rax, qword [r13 + 0x10]
cmp rcx, rax
jl 0x3ff905d14
cmp rsi, rax
jle 0x3ff905d58
mov edx, r12d
mov r8d, edi
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_check_range
mov r12d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rdi, qword [rsp + 0x168]
xor rdi, qword [rax]
jne 0x3ff90600b
mov eax, r12d
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r12d, r12d
je 0x3ff905d25
mov eax, dword [rsp + 0x3c]
mov rdi, qword [rsp + 0x40]
or eax, 8
mov dword [rdi], eax
jmp 0x3ff905d25
mov rcx, qword [rsp + 0xd8]
call sym.cygmpfr_6.dll_mpfr_free_func
jmp 0x3ff905ce1
mov rcx, rsi
shl rcx, 4
mov qword [rsp + 0xd0], rcx
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0xd8], rax
jmp 0x3ff905b6e
mov rax, qword [rsp + 0xa0]
cmp rax, 1
je 0x3ff905eea
movabs rax, 0x7ffffffffffffeff
sub rax, rbx
cmp rax, qword [rsp + 0x68]
jl 0x3ff905fd0
add rbx, qword [rsp + 0x68]
mov rdx, qword [rsp + 0xd0]
mov rax, rbx
shr rax, 0x3f
add rax, rbx
sar rax, 1
mov qword [rsp + 0x68], rax
movabs rax, 0x7ffffffffffffeff
cmp rbx, rax
jg 0x3ff9424e0
lea rsi, [rbx - 1]
sar rsi, 6
add rsi, 1
mov r8, rsi
shl r8, 4
mov qword [rsp + 0xd0], r8
test rdx, rdx
je 0x3ff905f28
mov rcx, qword [rsp + 0xd8]
call sym.cygmpfr_6.dll_mpfr_reallocate_func
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rax
lea rax, [rax + rsi*8]
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb8], 1
jmp 0x3ff905bb9
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rax
lea rax, [rsp + 0xe8]
mov qword [rsp + 0x90], 1
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], 1
mov qword [rsp + 0xc8], rax
mov dword [rsp + 0xb8], 1
mov rdx, qword [sym.cygmpfr_6.dll___gmpfr_one]
xor r8d, r8d
mov r9d, r12d
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_set4
cmp edi, 1
je 0x3ff905f15
mov eax, r12d
shr eax, 0x1f
add eax, edi
cmp eax, 3
jne 0x3ff905cd0
mov rcx, r13
neg r12d
call sym.cygmpfr_6.dll_mpfr_nexttozero
jmp 0x3ff905cd0
mov rcx, r8
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0xd8], rax
jmp 0x3ff905e45
sub rdx, 2
cmp rax, rdx
je 0x3ff905ff0
movabs rdx, 0x8000000000000003
cmp rax, rdx
je 0x3ff905fb8
movabs rax, 0x8000000000000001
xor r12d, r12d
mov qword [rcx + 0x10], rax
mov eax, dword [rbx + 8]
mov dword [rcx + 8], eax
jmp 0x3ff905d25
mov ebx, 1
jmp 0x3ff905b01
mov dword [rsp + 0x20], edi
xor r9d, r9d
mov rdx, rbx
call sym.cygmpfr_6.dll_mpfr_round_near_x
mov r12d, eax
test eax, eax
jne 0x3ff905d25
mov rax, qword [rbx + 0x10]
jmp 0x3ff905a19
movsxd rdx, dword [rbx + 8]
mov r9d, r8d
xor r8d, r8d
call sym.cygmpfr_6.dll_mpfr_set_si_2exp
mov r12d, eax
jmp 0x3ff905d25
lea r8, [0x3ff951050]
mov edx, 0x9a
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_tanh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop dword [rax + rax]
mov qword [rcx + 0x10], rax
mov rcx, qword [0x3ff956770]
xor r12d, r12d
call fcn.3ff93a260
or dword [rax], 4
jmp 0x3ff905d25
call sub.cygwin1.dll___stack_chk_fail