Function at 0x3ff906010
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, 0x198
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov qword [rsp + 0x30], r8
mov r13, rcx
mov r14, rdx
mov ebp, r9d
mov rdi, qword [rax]
mov qword [rsp + 0x188], rdi
xor edi, edi
cmp rcx, rdx
je 0x3ff942505
movabs rdx, 0x8000000000000004
mov rax, qword [rsp + 0x30]
mov rax, qword [rax + 0x10]
cmp rax, rdx
jl 0x3ff9066b0
mov rdi, qword [rsp + 0x30]
mov rcx, qword [0x3ff956770]
mov dword [rsp + 0x78], 1
mov qword [rsp + 0x80], rax
mov rdx, qword [rdi]
mov qword [rsp + 0x70], rdx
mov rdx, qword [rdi + 0x18]
mov qword [rsp + 0x88], rdx
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov rdi, rax
mov eax, dword [rax]
mov dword [rsp + 0x54], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov rbx, rax
mov qword [rsp + 0x48], rax
mov rax, qword [rax]
mov qword [rsp + 0x68], rax
call fcn.3ff93a260
movabs rcx, 0xc000000000000001
mov rsi, qword [rax]
mov qword [rbx], rcx
movabs rbx, 0x3fffffffffffffff
mov qword [rax], rbx
mov qword [rsp + 0x60], rax
mov rax, qword [r14]
cmp qword [r13], rax
cmovge rax, qword [r13]
mov qword [rsp + 0x58], rsi
mov rsi, rax
cmp rax, 1
je 0x3ff906718
jle 0x3ff94251d
lea rdx, [rax - 1]
mov eax, 0x40
bsr rdx, rdx
xor edx, 0x3f
sub eax, edx
movabs rdx, 0x7ffffffffffffeff
cdqe
add rax, rsi
lea rbx, [rax + 4]
cmp rbx, rdx
jg 0x3ff942500
lea rsi, [rax + 0x42]
add rax, 3
cmovs rax, rsi
sar rax, 6
lea rsi, [rax + 1]
lea rcx, [rsi + rsi*2]
cmp rcx, 0x10
jg 0x3ff906650
lea rax, [rsp + 0x100]
mov qword [rsp + 0xf0], 0
mov qword [rsp + 0xf8], rax
lea rdx, [rax + rsi*8]
shl rsi, 4
mov qword [rsp + 0xa8], rax
lea r12, [rsp + 0x90]
add rax, rsi
mov qword [rsp + 0x90], rbx
mov qword [rsp + 0xe8], rax
lea rax, [rsp + 0x70]
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0xb8], 1
mov qword [rsp + 0xd0], rbx
mov dword [rsp + 0xd8], 1
mov qword [rsp + 0x28], 0x40
mov qword [rsp + 0x38], rax
mov qword [rsp + 0x40], r14
mov dword [rdi], 0
mov rdx, qword [rsp + 0x38]
mov r8d, 3
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_exp
test byte [rdi], 2
jne 0x3ff942535
lea r14, [rsp + 0xd0]
lea r15, [rsp + 0xb0]
mov r8, r12
mov edx, 1
mov r9d, 2
mov rcx, r14
mov rsi, qword [rsp + 0xa0]
call sym.cygmpfr_6.dll_mpfr_ui_div
mov r8, r14
mov rdx, r12
mov rcx, r15
mov r9d, 2
call sym.cygmpfr_6.dll_mpfr_add
xor r9d, r9d
mov r8, r14
mov rdx, r12
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_sub
xor r9d, r9d
mov rdx, r15
mov rcx, r15
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov rcx, r12
xor r9d, r9d
mov rdx, r12
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov rax, qword [rsp + 0xa0]
movabs rcx, 0x8000000000000001
cmp rax, rcx
je 0x3ff9064b0
sub rsi, rax
mov edx, 0
mov r14, rbx
add rsi, 2
cmovs rsi, rdx
add rcx, 3
add rsi, 1
sub r14, rsi
cmp rax, rcx
jl 0x3ff9064b3
mov rax, qword [rsp + 0x90]
xor esi, esi
test ebp, ebp
mov r8, r14
mov r9, qword [r13]
sete sil
mov rcx, qword [rsp + 0xa8]
lea rdx, [rax - 1]
sar rdx, 6
add r9, rsi
add rdx, 1
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff9064b3
movabs rcx, 0x8000000000000004
cmp qword [rsp + 0xc0], rcx
jl 0x3ff9064b3
mov rax, qword [rsp + 0xb0]
mov rcx, qword [rsp + 0xc8]
mov r8, r14
lea rdx, [rax - 1]
mov rax, qword [rsp + 0x40]
sar rdx, 6
add rsi, qword [rax]
add rdx, 1
mov r9, rsi
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff9064b3
mov rax, qword [rsp + 0x30]
mov rdx, r12
mov r14, qword [rsp + 0x40]
mov r8d, ebp
mov rcx, r13
mov r9d, dword [rax + 8]
call sym.cygmpfr_6.dll_mpfr_set4
mov r8d, ebp
mov rdx, r15
mov rcx, r14
mov r9d, dword [rsp + 0xb8]
mov r12d, eax
call sym.cygmpfr_6.dll_mpfr_set4
mov ebx, eax
mov r14, rbx
movabs rax, 0x7ffffffffffffeff
add rbx, r14
sub rax, rbx
cmp rax, qword [rsp + 0x28]
jl 0x3ff906690
add rbx, qword [rsp + 0x28]
mov rdx, qword [rsp + 0xf0]
mov rax, rbx
shr rax, 0x3f
add rax, rbx
sar rax, 1
mov qword [rsp + 0x28], rax
movabs rax, 0x7ffffffffffffeff
cmp rbx, rax
jg 0x3ff942500
lea rsi, [rbx - 1]
sar rsi, 6
add rsi, 1
lea r8, [rsi + rsi*2]
shl r8, 3
mov qword [rsp + 0xf0], r8
test rdx, rdx
jne 0x3ff906598
mov rcx, r8
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0xf8], rax
lea rdx, [rax + rsi*8]
shl rsi, 4
mov qword [rsp + 0xa8], rax
add rax, rsi
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], rbx
mov qword [rsp + 0xc8], rdx
mov dword [rsp + 0xb8], 1
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xe8], rax
mov dword [rsp + 0xd8], 1
jmp 0x3ff9061fe
mov rcx, qword [rsp + 0xf8]
call sym.cygmpfr_6.dll_mpfr_reallocate_func
mov qword [rsp + 0xf8], rax
jmp 0x3ff906531
shl rcx, 3
mov qword [rsp + 0xf0], rcx
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0xf8], rax
jmp 0x3ff906182
lea r8, str._loop______mpfr_prec_t______mpfr_uprec_t___1_____1____256______N_
mov edx, 0x94
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sinh_cosh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop dword [rax + rax]
sub rdx, 2
cmp rax, rdx
je 0x3ff906758
movabs rdx, 0x8000000000000003
cmp rax, rdx
je 0x3ff906730
movabs rax, 0x8000000000000001
xor r8d, r8d
mov edx, 1
mov qword [rcx + 0x10], rax
mov rax, qword [rsp + 0x30]
mov eax, dword [rax + 8]
mov dword [rcx + 8], eax
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_set_ui_2exp
mov r12d, eax
test eax, eax
je 0x3ff90642e
setle r12b
movzx r12d, r12b
lea r12d, [r12*4 + 4]
jmp 0x3ff90642e
mov ebx, 5
mov esi, 1
jmp 0x3ff906166
mov rdi, qword [rsp + 0x30]
mov qword [rcx + 0x10], rax
xor r12d, r12d
mov edx, dword [rdi + 8]
mov dword [rcx + 8], edx
mov qword [r14 + 0x10], rax
mov dword [r14 + 8], 1
jmp 0x3ff90642e
mov qword [r14 + 0x10], rax
xor r12d, r12d
mov qword [rcx + 0x10], rax
mov rcx, qword [0x3ff956770]
call fcn.3ff93a260
or dword [rax], 4
jmp 0x3ff90642e