Function at 0x3ff942960
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, 0xd8
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rbx, qword [rax]
mov qword [rsp + 0xc8], rbx
xor ebx, ebx
mov rax, qword [rdx + 0x10]
mov rsi, rdx
mov r12, rcx
movabs rdx, 0x8000000000000004
mov edi, r8d
cmp rax, rdx
jl 0x3ff910e20
lea r13, [rsp + 0x60]
mov rdx, qword [rsi]
mov ebx, dword [rsi + 8]
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_init2
xor r8d, r8d
mov rdx, rsi
mov rcx, r13
mov r9d, 1
call sym.cygmpfr_6.dll_mpfr_set4
xor r8d, r8d
mov edx, 1
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_cmp_ui_2exp
test eax, eax
jns 0x3ff910ef0
mov rcx, qword [0x3ff956770]
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov qword [rsp + 0x38], rax
mov eax, dword [rax]
mov dword [rsp + 0x34], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov r14, rax
mov rax, qword [rax]
mov qword [rsp + 0x48], rax
call fcn.3ff93a260
mov r8, r13
mov edx, 1
mov rcx, r13
mov rbp, rax
mov rax, qword [rax]
mov r9d, 3
mov qword [rsp + 0x50], rax
movabs rax, 0xc000000000000001
mov qword [r14], rax
movabs rax, 0x3fffffffffffffff
mov qword [rbp], rax
call sym.cygmpfr_6.dll_mpfr_ui_sub
test ebx, ebx
jle 0x3ff910da0
mov eax, 1
sub rax, qword [rsp + 0x70]
add rax, rax
mov qword [rsp + 0x28], rax
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_clear
mov rdx, qword [r12]
cmp rdx, 1
je 0x3ff910f30
jle 0x3ff9428d0
mov ebx, 0x4a
lea rax, [rdx - 1]
bsr rax, rax
xor eax, 0x3f
sub ebx, eax
movsxd rbx, ebx
add rbx, qword [rsp + 0x28]
lea r15, [rsp + 0xa0]
lea r13, [rsp + 0x80]
add rbx, rdx
mov rcx, r15
mov rdx, rbx
call sym.cygmpfr_6.dll_mpfr_init2
mov rdx, rbx
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_init2
mov rcx, qword [0x3ff956720]
call fcn.3ff93a260
mov qword [rsp + 0x58], 0x40
mov qword [rsp + 0x40], rax
mov rax, r15
mov r15, rbp
mov ebp, edi
mov rdi, rax
xor r8d, r8d
mov rdx, rsi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_sqr
xor r9d, r9d
mov r8, rdi
mov edx, 1
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_ui_sub
xor r8d, r8d
mov rdx, rdi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_sqrt
xor r9d, r9d
mov r8, rdi
mov rdx, rsi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_div
xor r8d, r8d
mov rdx, rdi
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_atan
mov rdx, qword [rsp + 0x40]
xor r8d, r8d
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_cache
xor r9d, r9d
mov rdx, rdi
mov rcx, rdi
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_div_2ui
xor r9d, r9d
mov r8, r13
mov rdx, rdi
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_sub
movabs rax, 0x8000000000000004
cmp qword [rsp + 0x90], rax
jl 0x3ff910dd0
mov rax, qword [rsp + 0x80]
xor r9d, r9d
test ebp, ebp
mov rcx, qword [rsp + 0x98]
sete r9b
mov r8, rbx
add r9, qword [r12]
sub r8, qword [rsp + 0x28]
lea rdx, [rax - 1]
sar rdx, 6
add rdx, 1
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff910dd0
mov r9d, dword [rsp + 0x88]
mov rax, rdi
mov edi, ebp
mov rdx, r13
mov r8d, edi
mov rbp, r15
mov rcx, r12
mov r15, rax
call sym.cygmpfr_6.dll_mpfr_set4
mov rcx, r15
mov dword [rsp + 0x28], eax
call sym.cygmpfr_6.dll_mpfr_clear
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_clear
mov rax, qword [rsp + 0x38]
mov esi, dword [rsp + 0x34]
mov rbx, qword [rsp + 0x48]
mov r11d, dword [rsp + 0x28]
mov dword [rax], esi
mov rsi, qword [rsp + 0x50]
mov qword [r14], rbx
mov qword [rbp], rsi
mov rax, qword [r12 + 0x10]
cmp rsi, rax
jl 0x3ff910d58
cmp rbx, rax
jle 0x3ff910db8
mov edx, r11d
mov r8d, edi
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_check_range
mov r11d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rsi, qword [rsp + 0xc8]
xor rsi, qword [rax]
jne 0x3ff910fb0
mov eax, r11d
add rsp, 0xd8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov eax, 2
sub rax, qword [rsp + 0x70]
mov qword [rsp + 0x28], rax
jmp 0x3ff910b96
test r11d, r11d
je 0x3ff910d69
mov eax, dword [rsp + 0x34]
mov rsi, qword [rsp + 0x38]
or eax, 8
mov dword [rsi], eax
jmp 0x3ff910d69
movabs rax, 0x7ffffffffffffeff
sub rax, rbx
cmp rax, qword [rsp + 0x58]
jl 0x3ff910f98
add rbx, qword [rsp + 0x58]
mov rcx, rdi
mov rax, rbx
mov rdx, rbx
shr rax, 0x3f
add rax, rbx
sar rax, 1
mov qword [rsp + 0x58], rax
call sym.cygmpfr_6.dll_mpfr_set_prec
mov rdx, rbx
mov rcx, r13
call sym.cygmpfr_6.dll_mpfr_set_prec
jmp 0x3ff910c1a
sub rdx, 6
add rax, rdx
cmp rax, 1
jbe 0x3ff910f40
mov rcx, qword [0x3ff956770]
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov r13d, dword [rax]
mov rbp, rax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov r15, qword [rax]
mov rsi, rax
call fcn.3ff93a260
mov rcx, qword [0x3ff956720]
mov r14, qword [rax]
mov rbx, rax
movabs rax, 0xc000000000000001
mov qword [rsi], rax
movabs rax, 0x3fffffffffffffff
mov qword [rbx], rax
call fcn.3ff93a260
mov r8d, edi
mov rcx, r12
mov rdx, rax
call sym.cygmpfr_6.dll_mpfr_cache
mov r9d, edi
mov rdx, r12
mov rcx, r12
mov r8d, 1
mov dword [rsp + 0x28], eax
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov dword [rbp], r13d
mov r11d, dword [rsp + 0x28]
mov qword [rsi], r15
mov qword [rbx], r14
mov rax, qword [r12 + 0x10]
cmp r14, rax
jl 0x3ff910d58
cmp r15, rax
jg 0x3ff910d58
test r11d, r11d
je 0x3ff910d69
or r13d, 8
mov dword [rbp], r13d
jmp 0x3ff910d69
mov rcx, r13
mov dword [rsp + 0x28], eax
call sym.cygmpfr_6.dll_mpfr_clear
mov r11d, dword [rsp + 0x28]
test r11d, r11d
jne 0x3ff910f40
test ebx, ebx
jle 0x3ff910f70
movabs rax, 0x8000000000000001
mov dword [r12 + 8], 1
mov qword [r12 + 0x10], rax
jmp 0x3ff910d69
mov ebx, 0xa
jmp 0x3ff910bc7
movabs rax, 0x8000000000000002
mov rcx, qword [0x3ff956770]
mov qword [r12 + 0x10], rax
call fcn.3ff93a260
xor r11d, r11d
or dword [rax], 4
jmp 0x3ff910d69
mov rcx, qword [0x3ff956720]
call fcn.3ff93a260
mov r8d, edi
mov rcx, r12
mov rdx, rax
call sym.cygmpfr_6.dll_mpfr_cache
mov r11d, eax
jmp 0x3ff910d69
lea r8, [0x3ff9521b0]
mov edx, 0x86
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_acos.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 [rsp + 0x118]
xor rdi, qword [rax]
jne 0x3ff91318c
mov eax, r12d
add rsp, 0x128
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
call sub.cygwin1.dll___stack_chk_fail
nop word cs:[rax + rax]
nop dword [rax]
lea r8, [0x3ff952160]
mov edx, 0x60
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_acos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
lea r8, [0x3ff952270]
mov edx, 0x24e
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
lea r8, str.s___c
mov edx, 0x247
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
nop
lea r8, [0x3ff9522c2]
mov edx, 0x47
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
lea r8, str.y___z
mov edx, 0x28
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_sin_cos.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
call sym.cygmpfr_6.dll_mpfr_abort_prec_max
lea r8, str.inex1___0
mov edx, 0x4b
lea rcx, [0x3ff952330]
call sym.cygmpfr_6.dll_mpfr_assert_fail
mov eax, dword [rdi]
mov r8d, dword [rsp + 0x3c]
test r9d, r9d
jle 0x3ff9429a1
or eax, 2
mov edx, r13d
mov rcx, r14
mov dword [rdi], eax
call sym.cygmpfr_6.dll_mpfr_overflow
mov r12d, eax
jmp 0x3ff91308c
or eax, 1
mov dword [rdi], eax
test r13d, r13d
je 0x3ff9429be
mov edx, r13d
mov rcx, r14
call sym.cygmpfr_6.dll_mpfr_underflow
mov r12d, eax
jmp 0x3ff91308c
mov r13d, 1
jmp 0x3ff9429ab