Function at 0x3ff906780
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, 0xa8
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rbx, qword [rax]
mov qword [rsp + 0x98], rbx
xor ebx, ebx
mov rax, qword [rdx + 0x10]
mov rsi, rdx
mov r12, rcx
movabs rdx, 0x8000000000000004
mov r13d, r8d
cmp rax, rdx
jl 0x3ff906a80
xor r8d, r8d
mov edx, 1
mov rcx, rsi
call sym.cygmpfr_6.dll_mpfr_cmp_ui_2exp
mov r15d, eax
test eax, eax
js 0x3ff906a98
je 0x3ff906b80
mov rcx, qword [0x3ff956770]
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov rbp, rax
mov eax, dword [rax]
mov dword [rsp + 0x24], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov rbx, rax
mov qword [rsp + 0x38], rax
mov rax, qword [rax]
mov qword [rsp + 0x28], rax
call fcn.3ff93a260
mov rdi, qword [rax]
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x30], rdi
movabs rdi, 0xc000000000000001
mov qword [rbx], rdi
movabs rbx, 0x3fffffffffffffff
mov qword [rax], rbx
mov r15, qword [r12]
lea rdx, [r15 + 4]
cmp r15, 1
je 0x3ff906ba0
jle 0x3ff942570
mov edi, 0x40
lea rax, [r15 - 1]
bsr rax, rax
xor eax, 0x3f
sub edi, eax
movsxd rdi, edi
add rdi, rdx
lea r14, [rsp + 0x50]
mov rdx, rdi
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_init2
mov qword [rsp + 0x48], 0x40
mov dword [rbp], 0
mov r8, rsi
mov rdx, rsi
mov rcx, r14
mov r9d, 3
call sym.cygmpfr_6.dll_mpfr_mul
test byte [rbp], 2
jne 0x3ff906ac0
mov rcx, r14
mov r9d, 3
mov rdx, r14
mov rbx, qword [rsp + 0x60]
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_sub_ui
mov rax, qword [rsp + 0x60]
movabs rcx, 0x8000000000000001
cmp rax, rcx
je 0x3ff906b38
xor r8d, r8d
mov rdx, r14
mov rcx, r14
sub rbx, rax
call sym.cygmpfr_6.dll_mpfr_sqrt
xor r9d, r9d
mov r8, rsi
mov rdx, r14
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_add
xor r8d, r8d
mov rdx, r14
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_log
test rbx, rbx
mov eax, 1
mov rdx, qword [rsp + 0x60]
cmovg rax, rbx
mov rcx, 0xffffffffffffffff
add rax, 3
sub rax, rdx
cmovs rax, rcx
add rax, 1
movabs rbx, 0x8000000000000004
cmp rdx, rbx
jl 0x3ff906a38
mov rbx, qword [rsp + 0x50]
xor ecx, ecx
test r13d, r13d
mov r8, rdi
sete cl
sub r8, rax
lea rdx, [rbx - 1]
lea r9, [rcx + r15]
mov rcx, qword [rsp + 0x68]
sar rdx, 6
add rdx, 1
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff906a38
mov r9d, dword [rsp + 0x58]
mov r8d, r13d
mov rdx, r14
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_set4
mov rcx, r14
mov r15d, eax
call sym.cygmpfr_6.dll_mpfr_clear
mov eax, dword [rsp + 0x24]
mov rdi, qword [rsp + 0x28]
mov rsi, qword [rsp + 0x30]
mov dword [rbp], eax
mov rax, qword [rsp + 0x38]
mov qword [rax], rdi
mov rax, qword [rsp + 0x40]
mov qword [rax], rsi
mov rax, qword [r12 + 0x10]
cmp rsi, rax
jl 0x3ff9069db
cmp rdi, rax
jle 0x3ff906a20
mov edx, r15d
mov r8d, r13d
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_check_range
mov r15d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rsi, qword [rsp + 0x98]
xor rsi, qword [rax]
jne 0x3ff906be0
mov eax, r15d
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r15d, r15d
je 0x3ff9069ec
mov eax, dword [rsp + 0x24]
or eax, 8
mov dword [rbp], eax
jmp 0x3ff9069ec
movabs rax, 0x7ffffffffffffeff
sub rax, rdi
cmp rax, qword [rsp + 0x48]
jl 0x3ff906bc8
add rdi, qword [rsp + 0x48]
mov rcx, r14
mov rax, rdi
mov rdx, rdi
shr rax, 0x3f
add rax, rdi
sar rax, 1
mov qword [rsp + 0x48], rax
call sym.cygmpfr_6.dll_mpfr_set_prec
jmp 0x3ff906895
sub rdx, 1
cmp rax, rdx
jne 0x3ff906a98
mov edx, dword [rsi + 8]
test edx, edx
jg 0x3ff906bb0
nop dword [rax]
movabs rax, 0x8000000000000002
mov rcx, qword [0x3ff956770]
xor r15d, r15d
mov qword [r12 + 0x10], rax
call fcn.3ff93a260
or dword [rax], 4
jmp 0x3ff9069ec
xor r8d, r8d
mov rdx, rsi
lea rbx, [rsp + 0x70]
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_log
mov rax, qword [rsp + 0x60]
mov rdx, rdi
mov rcx, rbx
sub rdx, rax
cmp rax, rdi
mov eax, 1
cmovge rdx, rax
call sym.cygmpfr_6.dll_mpfr_init2
mov rcx, qword [0x3ff956710]
call fcn.3ff93a260
xor r8d, r8d
mov rcx, rbx
mov rdx, rax
call sym.cygmpfr_6.dll_mpfr_cache
mov rdx, r14
xor r9d, r9d
mov r8, rbx
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_add
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_clear
mov rdx, qword [rsp + 0x60]
mov eax, 1
jmp 0x3ff906945
mov r9d, 3
mov r8d, 1
mov rdx, rsi
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_sub_ui
xor r9d, r9d
mov rdx, r14
mov rcx, r14
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_mul_2ui
mov rdx, r14
xor r8d, r8d
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_sqrt
mov rdx, qword [rsp + 0x60]
mov eax, 1
jmp 0x3ff906945
movabs rax, 0x8000000000000001
mov dword [r12 + 8], 1
mov qword [r12 + 0x10], rax
jmp 0x3ff9069ec
mov edi, 5
jmp 0x3ff90687c
mov qword [rcx + 0x10], rax
xor r15d, r15d
mov dword [rcx + 8], 1
jmp 0x3ff9069ec
lea r8, [0x3ff9511a0]
mov edx, 0x92
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_acosh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
call sub.cygwin1.dll___stack_chk_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rdi, qword [rbp + 0xd8]
xor rdi, qword [rax]
jne 0x3ff90d12e
mov eax, r12d
lea rsp, [rbp + 0xe8]
pop rbx
pop rsi
pop rdi
pop r12
pop r13
pop r14
pop r15
pop rbp
ret
call sub.cygwin1.dll___stack_chk_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff951150]
mov edx, 0x53
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_acosh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff9511f0]
mov edx, 0x50
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_asinh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff951290]
mov edx, 0xa1
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atanh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, str._2__l__18____1
mov edx, 0x9f
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_exp_2.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
nop
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
lea r8, [0x3ff951890]
mov edx, 0xb9
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
lea r8, [0x3ff951840]
mov edx, 0xb1
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff951930]
mov edx, 0x55
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
lea r8, str.err1_____mpfr_prec_t______mpfr_uprec_t___1_____1____256_____m
mov edx, 0x60
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff951a50]
mov edx, 0x42
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_tan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
nop
nop
nop
lea r8, str.precx__precy_____mpfr_prec_t______mpfr_uprec_t___1_____1____256__
mov edx, 0xd5
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_fma.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
mov eax, dword [rbp - 0x38]
mov edx, dword [rbp + 0x150]
mov rcx, r13
mov dword [rbx], eax
mov rax, qword [rbp - 0x40]
mov qword [rsi], rax
mov qword [rdi], r14
call sym.cygmpfr_6.dll_mpfr_overflow
mov r12d, eax
jmp 0x3ff90ca93