Function at 0x3ff904dc0
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 r14, qword [rdx + 0x10]
mov rsi, qword [rax]
mov qword [rsp + 0x168], rsi
xor esi, esi
mov r12, rcx
mov rbx, rdx
mov edi, r8d
movabs rax, 0x8000000000000004
cmp r14, rax
jl 0x3ff905240
mov rcx, qword [0x3ff956770]
neg r14
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov rsi, rax
mov eax, dword [rax]
mov dword [rsp + 0x3c], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov qword [rsp + 0x58], rax
mov r15, rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
call fcn.3ff93a260
lea r8, [r14 + r14]
mov rbp, rax
mov rax, qword [rax]
mov qword [rsp + 0x50], rax
movabs rax, 0xc000000000000001
mov qword [r15], rax
movabs rax, 0x3fffffffffffffff
mov qword [rbp], rax
mov r14, qword [r12]
test r8, r8
jle 0x3ff904e87
lea rax, [r14 + 1]
cmp r8, rax
ja 0x3ff905210
mov rax, qword [rbx]
mov dword [rsp + 0x78], 1
lea rdx, [r14 + 3]
mov qword [rsp + 0x70], rax
mov rax, qword [rbx + 0x18]
mov qword [rsp + 0x88], rax
mov rax, qword [rbx + 0x10]
mov qword [rsp + 0x80], rax
cmp r14, 1
je 0x3ff905280
jle 0x3ff942442
lea rax, [r14 - 1]
mov ebx, 0x40
bsr rax, rax
xor eax, 0x3f
sub ebx, eax
movabs rax, 0x7ffffffffffffeff
movsxd rbx, ebx
add rbx, rdx
cmp rbx, rax
jg 0x3ff942420
lea rax, [rbx - 1]
sar rax, 6
lea r15, [rax + 1]
lea rax, [r15 + r15]
cmp rax, 0x10
jg 0x3ff9050f8
lea rax, [rsp + 0xe0]
mov qword [rsp + 0xd0], 0
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rax
lea rax, [rax + r15*8]
lea r13, [rsp + 0x90]
mov qword [rsp + 0xc8], rax
lea rax, [rsp + 0x70]
lea r15, [rsp + 0xb0]
mov qword [rsp + 0x90], rbx
mov dword [rsp + 0x98], 1
mov qword [rsp + 0xb0], rbx
mov dword [rsp + 0xb8], 1
mov qword [rsp + 0x60], 0x40
mov qword [rsp + 0x40], rax
mov dword [rsi], 0
mov rdx, qword [rsp + 0x40]
mov r8d, 3
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_exp
test byte [rsi], 2
jne 0x3ff942425
mov r9d, 2
mov r8, r15
mov edx, 1
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_ui_div
mov r8, r13
mov rdx, r15
mov rcx, r13
mov r9d, 2
call sym.cygmpfr_6.dll_mpfr_add
xor r9d, r9d
mov rdx, r13
mov rcx, r13
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_div_2ui
lea r8, [rbx - 3]
movabs rax, 0x8000000000000004
cmp qword [rsp + 0xa0], rax
jl 0x3ff905120
mov rcx, qword [rsp + 0x90]
xor eax, eax
test edi, edi
sete al
lea rdx, [rcx - 1]
mov rcx, qword [rsp + 0xa8]
lea r9, [rax + r14]
sar rdx, 6
add rdx, 1
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff905120
mov r9d, dword [rsp + 0x98]
mov r8d, edi
mov rdx, r13
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_set4
mov r14d, eax
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
jne 0x3ff9050e0
mov eax, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x48]
mov rcx, qword [rsp + 0x50]
mov dword [rsi], eax
mov rax, qword [rsp + 0x58]
mov qword [rax], rbx
mov qword [rbp], rcx
mov rax, qword [r12 + 0x10]
cmp rcx, rax
jl 0x3ff905086
cmp rbx, rax
jle 0x3ff9050d0
mov edx, r14d
mov r8d, edi
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_check_range
mov r14d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rdi, qword [rsp + 0x168]
xor rdi, qword [rax]
jne 0x3ff905323
mov eax, r14d
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r14d, r14d
je 0x3ff905097
mov eax, dword [rsp + 0x3c]
or eax, 8
mov dword [rsi], eax
jmp 0x3ff905097
mov rcx, qword [rsp + 0xd8]
call sym.cygmpfr_6.dll_mpfr_free_func
jmp 0x3ff90505b
mov rcx, r15
shl rcx, 4
mov qword [rsp + 0xd0], rcx
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0xd8], rax
jmp 0x3ff904f24
movabs rax, 0x7ffffffffffffeff
sub rax, rbx
cmp rax, qword [rsp + 0x60]
jl 0x3ff905290
add rbx, qword [rsp + 0x60]
mov rdx, qword [rsp + 0xd0]
mov rax, rbx
shr rax, 0x3f
add rax, rbx
sar rax, 1
mov qword [rsp + 0x60], rax
movabs rax, 0x7ffffffffffffeff
cmp rbx, rax
jg 0x3ff942420
lea r9, [rbx - 1]
sar r9, 6
add r9, 1
mov r8, r9
mov qword [rsp + 0x68], r9
shl r8, 4
mov qword [rsp + 0xd0], r8
test rdx, rdx
je 0x3ff9051f0
mov rcx, qword [rsp + 0xd8]
call sym.cygmpfr_6.dll_mpfr_reallocate_func
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0xd8], rax
mov qword [rsp + 0xa8], rax
lea rax, [rax + r9*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 0x3ff904f81
mov rcx, r8
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov r9, qword [rsp + 0x68]
mov qword [rsp + 0xd8], rax
jmp 0x3ff9051a9
mov dword [rsp + 0x20], edi
mov rdx, qword [sym.cygmpfr_6.dll___gmpfr_one]
mov r9d, 1
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_round_near_x
mov r14d, eax
test eax, eax
jne 0x3ff9052b0
mov r14, qword [r12]
jmp 0x3ff904e87
sub rax, 2
cmp r14, rax
je 0x3ff905308
movabs rax, 0x8000000000000003
cmp r14, rax
je 0x3ff9052f0
mov r9d, r8d
mov edx, 1
xor r8d, r8d
call sym.cygmpfr_6.dll_mpfr_set_ui_2exp
mov r14d, eax
jmp 0x3ff905097
mov r15d, 1
mov ebx, 4
jmp 0x3ff904f08
lea r8, [0x3ff950f10]
mov edx, 0x76
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_cosh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop dword [rax + rax]
mov eax, dword [rsp + 0x3c]
mov rbx, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x50]
mov dword [rsi], eax
mov rax, qword [rsp + 0x58]
mov qword [rax], rbx
mov qword [rbp], rdx
mov rax, qword [r12 + 0x10]
cmp rdx, rax
jl 0x3ff905086
cmp rbx, rax
jg 0x3ff905086
jmp 0x3ff9050d5
mov qword [rcx + 0x10], r14
xor r14d, r14d
mov dword [rcx + 8], 1
jmp 0x3ff905097
mov qword [rcx + 0x10], r14
mov rcx, qword [0x3ff956770]
xor r14d, r14d
call fcn.3ff93a260
or dword [rax], 4
jmp 0x3ff905097
call sub.cygwin1.dll___stack_chk_fail
nop
nop
nop
nop
nop
nop
nop
nop
mov rdx, qword [rsp + 0xd0]
test rdx, rdx
jne 0x3ff905768
mov eax, dword [rsp + 0x44]
mov rcx, qword [rsp + 0x50]
mov rdi, qword [rsp + 0x58]
mov dword [rsi], eax
mov rax, qword [rsp + 0x60]
mov qword [rax], rcx
mov rax, qword [rsp + 0x68]
mov qword [rax], rdi
mov rax, qword [r12 + 0x10]
cmp rdi, rax
jl 0x3ff90564a
cmp rcx, rax
jle 0x3ff905690
mov edx, r14d
mov r8d, ebp
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_check_range
mov r14d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rsi, qword [rsp + 0x168]
xor rsi, qword [rax]
jne 0x3ff9059a3
mov eax, r14d
add rsp, 0x178
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test r14d, r14d
je 0x3ff90565b
mov eax, dword [rsp + 0x44]
or eax, 8
mov dword [rsi], eax
jmp 0x3ff90565b
mov rcx, qword [rsp + 0xd8]
call sym.cygmpfr_6.dll_mpfr_free_func
jmp 0x3ff90561b
call sub.cygwin1.dll___stack_chk_fail
nop
jmp 0x3ff9424d8
mov rdx, qword [rsp + 0xf0]
test rdx, rdx
jne 0x3ff9065b0
mov eax, dword [rsp + 0x54]
mov rsi, qword [rsp + 0x48]
mov rdx, qword [rsp + 0x68]
mov rcx, qword [rsp + 0x58]
mov dword [rdi], eax
mov rax, qword [rsp + 0x60]
mov qword [rsi], rdx
mov qword [rax], rcx
mov rax, qword [r13 + 0x10]
cmp rcx, rax
jl 0x3ff9063e1
cmp rdx, rax
jle 0x3ff906460
mov edx, r12d
mov r8d, ebp
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_check_range
mov rsi, qword [rsp + 0x48]
mov r12d, eax
mov rax, qword [r14 + 0x10]
cmp rax, qword [rsi]
jl 0x3ff906670
mov rsi, qword [rsp + 0x60]
cmp qword [rsi], rax
jl 0x3ff906670
test ebx, ebx
jne 0x3ff906620
test r12d, r12d
je 0x3ff90642e
test r12d, r12d
setle r12b
movzx r12d, r12b
add r12d, 1
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rdi, qword [rsp + 0x188]
xor rdi, qword [rax]
jne 0x3ff906777
mov eax, r12d
add rsp, 0x198
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [r14 + 0x10]
mov rcx, qword [rsi]
test r12d, r12d
je 0x3ff9065c8
mov eax, dword [rsp + 0x54]
or eax, 8
mov dword [rdi], eax
cmp rdx, rcx
jl 0x3ff906489
cmp qword [rsp + 0x58], rdx
jge 0x3ff906618
mov edx, ebx
mov r8d, ebp
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_check_range
mov ebx, eax
test r12d, r12d
setle r12b
movzx r12d, r12b
add r12d, 1
jmp 0x3ff906607
mov rcx, qword [rsp + 0xf8]
call sym.cygmpfr_6.dll_mpfr_free_func
jmp 0x3ff9063af
cmp rdx, rcx
jl 0x3ff9065f8
cmp qword [rsp + 0x58], rdx
jl 0x3ff9065f8
test ebx, ebx
je 0x3ff90642e
or dword [rdi], 8
mov edx, r12d
or r12d, 8
or edx, 4
test ebx, ebx
cmovg r12d, edx
jmp 0x3ff90642e
mov edx, ebx
mov r8d, ebp
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_check_range
mov ebx, eax
test ebx, ebx
je 0x3ff90642e
jmp 0x3ff9065df
test ebx, ebx
je 0x3ff90641f
or dword [rdi], 8
test r12d, r12d
je 0x3ff9065df
setle r12b
movzx r12d, r12b
add r12d, 1
mov edx, r12d
or r12d, 8
or edx, 4
test ebx, ebx
cmovg r12d, edx
jmp 0x3ff90642e
mov edx, ebx
mov r8d, ebp
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_check_range
mov ebx, eax
test r12d, r12d
jne 0x3ff906498
jmp 0x3ff906607
call sub.cygwin1.dll___stack_chk_fail
nop
nop
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
mov r8d, 1
mov edx, edi
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_overflow
or dword [rsp + 0x3c], 2
mov r14d, eax
jmp 0x3ff90504a
lea r8, [0x3ff950ec0]
mov edx, 0x53
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_cosh.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
mov rdi, qword [rsp + 0x48]
mov edx, ebp
mov rcx, r12
mov r8d, dword [rdi + 8]
call sym.cygmpfr_6.dll_mpfr_overflow
or dword [rsp + 0x44], 2
mov r14d, eax
jmp 0x3ff90560a
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
nop
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
lea r8, [0x3ff951000]
mov edx, 0x60
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
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
lea r8, str.sh___ch
mov edx, 0x28
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
lea r8, str._N____1
mov edx, 0x60
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
mov r14, qword [rsp + 0x40]
mov r8d, 1
mov edx, ebp
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_overflow
mov rdx, qword [rsp + 0x30]
mov r8d, ebp
mov rcx, r13
mov ebx, eax
call sym.cygmpfr_6.dll_mpfr_sinh
or dword [rsp + 0x54], 2
mov r12d, eax
jmp 0x3ff90639e