Function at 0x3ff9099d0
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, 0x1a8
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rbx, qword [rdx + 0x10]
mov rdi, qword [rax]
mov qword [rsp + 0x198], rdi
xor edi, edi
mov rax, qword [rcx]
mov qword [rsp + 0x58], rcx
mov qword [rsp + 0x40], rdx
mov dword [rsp + 0x200], r8d
mov qword [rsp + 0x20], rax
cmp rbx, 0xffffffffffffffff
jl 0x3ff90a160
mov r8, qword [sym.cygmpfr_6.dll___gmpfr_const_log2_RNDD]
mov rdx, qword [rsp + 0x40]
xor r9d, r9d
lea rdi, [rsp + 0xe0]
lea rax, [rsp + 0x100]
mov rcx, rdi
mov qword [rsp + 0xe0], 0x3f
mov qword [rsp + 0xf8], rax
mov dword [rsp + 0xe8], 1
call sym.cygmpfr_6.dll_mpfr_div
mov rax, qword [rsp + 0xf0]
test rax, rax
jle 0x3ff90a160
mov ecx, 0x40
mov r9d, dword [rsp + 0xe8]
sub ecx, eax
mov rax, qword [rsp + 0xf8]
mov rax, qword [rax]
shr rax, cl
mov rbp, rax
test r9d, r9d
jle 0x3ff90a0b8
test rbp, rbp
je 0x3ff90a160
mov eax, 1
sub rax, rbp
test rbp, rbp
mov rdx, rax
lea rax, [rbp + 1]
cmovs rax, rdx
mov edx, 0x40
bsr rax, rax
xor eax, 0x3f
sub edx, eax
mov dword [rsp + 0x3c], edx
mov rax, qword [rsp + 0x20]
cmp rax, 0x63
jg 0x3ff90a140
add rax, 1
mov rcx, rax
shr rcx, 0x3f
add rcx, rax
sar rcx, 1
call sym.cygmpfr_6.dll___gmpfr_isqrt
add rax, 3
mov qword [rsp + 0x30], rax
mov rax, qword [rsp + 0x20]
xor edx, edx
sub rax, 1
div qword [rsp + 0x30]
lea rax, [rax + rax + 0x14]
cmp rax, 1
jbe 0x3ff9425e0
mov rsi, qword [rsp + 0x20]
sub rax, 1
mov rdi, qword [rsp + 0x30]
mov edx, 0x40
bsr rax, rax
xor eax, 0x3f
lea rcx, [rsi + rdi*2 + 0xa]
sub edx, eax
test rbx, rbx
movsxd rax, edx
lea r13, [rcx + rax]
lea rax, [r13 + rbx]
cmovg r13, rax
movsxd rax, dword [rsp + 0x3c]
mov qword [rsp + 0x60], rax
lea rsi, [r13 + rax]
movabs rax, 0x7ffffffffffffeff
cmp rsi, rax
jg 0x3ff9425f8
lea rbx, [rsi - 1]
sar rbx, 6
add rbx, 1
lea rax, [rbx + rbx]
cmp rax, 0x10
jg 0x3ff90a238
lea rax, [rsp + 0x110]
mov qword [rsp + 0x100], 0
mov qword [rsp + 0x108], rax
lea r14, [rsp + 0x90]
mov qword [rsp + 0xf8], rax
lea rax, [rax + rbx*8]
mov rcx, r14
mov qword [rsp + 0xd8], rax
lea r15, [rsp + 0xc0]
lea rdi, [rsp + 0xe0]
mov qword [rsp + 0xe0], rsi
mov dword [rsp + 0xe8], 1
mov qword [rsp + 0xc0], rsi
mov dword [rsp + 0xc8], 1
call sym.cygmpfr_6.dll_mpfr_mpz_init
mov rcx, qword [0x3ff956710]
call fcn.3ff93a260
mov qword [rsp + 0x50], 0x40
mov qword [rsp + 0x48], rax
mov rax, r15
mov r15, rbp
mov rbp, rax
mov rax, r15
sar rax, 0x3f
mov rbx, rax
xor rbx, r15
sub rbx, rax
test r15, r15
js 0x3ff90a108
mov rdx, qword [rsp + 0x48]
mov r8d, 1
mov rcx, rbp
call sym.cygmpfr_6.dll_mpfr_cache
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
mov r9d, 1
call sym.cygmpfr_6.dll_mpfr_mul_ui
mov rdx, qword [rsp + 0x40]
mov r9d, 2
mov r8, rdi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_sub
movabs rax, 0x8000000000000004
cmp qword [rsp + 0xf0], rax
jge 0x3ff909cc8
jmp 0x3ff90a170
mov r9d, 2
mov r8, rbp
mov rdx, rdi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_add
sub r15, 1
movabs rax, 0x8000000000000004
cmp qword [rsp + 0xf0], rax
jl 0x3ff90a170
mov r8d, dword [rsp + 0xe8]
test r8d, r8d
js 0x3ff909c98
mov eax, dword [rsp + 0x3c]
test eax, eax
jle 0x3ff909cee
mov r8d, 2
mov rdx, r13
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_prec_round
mov r8, qword [rsp + 0x30]
mov r9d, 2
mov rdx, rdi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_div_2ui
cmp qword [rsp + 0x20], 0x63
jg 0x3ff90a0d0
lea rsi, [rsp + 0xa0]
mov eax, 1
lea r12, [rsp + 0xb0]
sub rax, r13
mov rcx, rsi
mov qword [rsp + 0x88], rax
call sym.cygmpfr_6.dll_mpfr_mpz_init
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_mpz_init
mov rbx, qword [sym.imp.cyggmp_10.dll___gmpz_set_ui]
mov edx, 1
mov rcx, rsi
call rbx
mov edx, 1
mov rcx, r14
call rbx
lea r8, [r13 - 1]
mov rdx, r14
mov rcx, r14
call qword [sym.imp.cyggmp_10.dll___gmpz_mul_2exp]
mov rdx, rdi
mov rcx, r12
xor ebx, ebx
call sym.cygmpfr_6.dll_mpfr_get_z_2exp
mov rcx, qword [sym.imp.cyggmp_10.dll___gmpz_mul]
xor edx, edx
mov qword [rsp + 0x68], r15
mov qword [rsp + 0x70], rbp
mov r15, rdx
mov rbp, rax
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x78], rdi
jmp 0x3ff909e23
mov r8d, 0x40
mov rdx, rsi
mov rcx, rsi
bsr rax, r15
xor eax, 0x3f
sub r8d, eax
movsxd r8, r8d
call qword [sym.imp.cyggmp_10.dll___gmpz_fdiv_q_2exp]
mov ecx, dword [rsp + 0xa4]
test ecx, ecx
je 0x3ff909ef3
mov r8, rsi
mov rdx, r14
mov rcx, r14
mov r15, rdi
call qword [sym.imp.cyggmp_10.dll___gmpz_add]
mov eax, dword [rsp + 0xa4]
mov rdx, r12
mov rcx, r12
mov r8d, dword [rsp + 0xa4]
sar eax, 0x1f
xor r8d, eax
sub r8d, eax
mov rax, qword [rsp + 0xa8]
movsxd r8, r8d
bsr rax, qword [rax + r8*8 - 8]
xor eax, 0x3f
shl r8, 6
cdqe
sub r8, rax
call fcn.3ff909380
add rbp, rax
mov rax, qword [rsp + 0x28]
mov r8, r12
mov rdx, rsi
mov rcx, rsi
call rax
mov eax, dword [rsp + 0x94]
add rbx, rbp
lea rdi, [r15 + 1]
mov edx, dword [rsp + 0x94]
mov ecx, dword [rsp + 0xa4]
sar eax, 0x1f
xor edx, eax
sar ecx, 0x1f
sub edx, eax
mov rax, qword [rsp + 0x98]
movsxd rdx, edx
bsr r8, qword [rax + rdx*8 - 8]
mov eax, dword [rsp + 0xa4]
xor r8d, 0x3f
shl rdx, 6
movsxd r8, r8d
xor eax, ecx
sub rdx, r8
add rdx, qword [rsp + 0x88]
mov r8, r13
sub eax, ecx
mov rcx, qword [rsp + 0xa8]
sub rdx, rbx
cdqe
bsr rcx, qword [rcx + rax*8 - 8]
xor ecx, 0x3f
shl rax, 6
movsxd rcx, ecx
sub rax, rcx
mov rcx, rsi
sub rdx, rax
sub r8, rdx
mov rdx, rsi
call fcn.3ff909380
add rbx, rax
cmp rdi, 1
jbe 0x3ff909dbf
test r15, rdi
je 0x3ff909da0
mov rcx, rsi
mov r8, rdi
mov rdx, rsi
call qword [sym.imp.cyggmp_10.dll___gmpz_fdiv_q_ui]
mov ecx, dword [rsp + 0xa4]
test ecx, ecx
jne 0x3ff909dce
mov rcx, rsi
mov rbx, r15
mov qword [rsp + 0x28], rdi
mov r15, qword [rsp + 0x68]
mov rbp, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x78]
call sym.cygmpfr_6.dll_mpfr_mpz_clear
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_mpz_clear
mov rax, rbx
mov rsi, qword [rsp + 0x28]
mov r12, qword [rsp + 0x30]
add rax, 2
imul rsi, rax
lea rbx, [rsi + rsi*2]
test r12, r12
je 0x3ff90a0f7
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_mul]
xor esi, esi
mov qword [rsp + 0x28], rbx
mov rbx, rsi
mov rsi, rax
mov r8, r14
mov rdx, r14
mov rcx, r14
add rbx, 1
call rsi
mov r8, r13
mov rdx, r14
mov rcx, r14
shl qword [rsp + 0x88], 1
call fcn.3ff909380
add rax, qword [rsp + 0x88]
mov qword [rsp + 0x88], rax
mov r8, rax
cmp r12, rbx
jne 0x3ff909f50
mov rbx, qword [rsp + 0x28]
xor r9d, r9d
mov rdx, r14
mov rcx, rbp
call sym.cygmpfr_6.dll_mpfr_set_z_2exp
cmp rbx, 1
je 0x3ff90a28b
jbe 0x3ff90a292
mov eax, 0x40
sub rbx, 1
bsr rbx, rbx
xor ebx, 0x3f
sub eax, ebx
cdqe
mov r8, 0xfffffffffffffffe
sub r8, qword [rsp + 0x30]
movabs rsi, 0x8000000000000004
cmp qword [rsp + 0xd0], rsi
jl 0x3ff90a170
mov edx, dword [rsp + 0x200]
mov rsi, qword [rsp + 0xc0]
xor ecx, ecx
test edx, edx
lea rdx, [rsi - 1]
mov rsi, qword [rsp + 0x20]
sete cl
add r8, r13
sar rdx, 6
lea r9, [rcx + rsi]
mov rcx, qword [rsp + 0xd8]
add rdx, 1
sub r8, rax
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff90a170
mov rcx, qword [0x3ff956770]
mov rax, rbp
mov rbp, r15
mov r15, rax
call fcn.3ff93a260
mov rcx, qword [rsp + 0x58]
mov rdx, r15
mov r8, rbp
mov dword [rax], 0
mov r9d, dword [rsp + 0x200]
call sym.cygmpfr_6.dll_mpfr_mul_2si
mov rcx, r14
mov r12d, eax
call sym.cygmpfr_6.dll_mpfr_mpz_clear
mov rdx, qword [rsp + 0x100]
test rdx, rdx
je 0x3ff90a086
mov rcx, qword [rsp + 0x108]
call sym.cygmpfr_6.dll_mpfr_free_func
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rdi, qword [rsp + 0x198]
xor rdi, qword [rax]
jne 0x3ff90a2c2
mov eax, r12d
add rsp, 0x1a8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
test rax, rax
js 0x3ff90a272
neg rbp
jmp 0x3ff909a9f
lea r9, [rsp + 0x88]
mov r8, r13
mov rdx, rdi
mov rcx, r14
call fcn.3ff9093f0
mov r12, qword [rsp + 0x30]
mov rbx, rax
test r12, r12
jne 0x3ff909f3c
mov r8, qword [rsp + 0x88]
jmp 0x3ff909f92
mov rdx, qword [rsp + 0x48]
mov r8d, 2
mov rcx, rbp
call sym.cygmpfr_6.dll_mpfr_cache
mov r8, rbx
mov rdx, rbp
mov rcx, rdi
mov r9d, 2
call sym.cygmpfr_6.dll_mpfr_mul_ui
neg dword [rsp + 0xe8]
jmp 0x3ff909c66
mov rax, qword [rsp + 0x20]
lea rcx, [rax*4]
call sym.cygmpfr_6.dll___gmpfr_cuberoot
mov qword [rsp + 0x30], rax
jmp 0x3ff909afe
mov dword [rsp + 0x3c], 0
xor ebp, ebp
jmp 0x3ff909ad0
movabs rcx, 0x7ffffffffffffeff
mov rax, rcx
sub rax, r13
cmp rax, qword [rsp + 0x50]
jl 0x3ff90a2aa
add r13, qword [rsp + 0x50]
mov rdx, qword [rsp + 0x100]
mov rax, r13
shr rax, 0x3f
add rax, r13
sar rax, 1
mov qword [rsp + 0x50], rax
mov rax, qword [rsp + 0x60]
lea rsi, [r13 + rax]
cmp rsi, rcx
jg 0x3ff9425f8
lea rbx, [rsi - 1]
sar rbx, 6
add rbx, 1
mov r8, rbx
shl r8, 4
mov qword [rsp + 0x100], r8
test rdx, rdx
je 0x3ff90a260
mov rcx, qword [rsp + 0x108]
call sym.cygmpfr_6.dll_mpfr_reallocate_func
mov qword [rsp + 0x108], rax
mov qword [rsp + 0xf8], rax
lea rax, [rax + rbx*8]
mov qword [rsp + 0xe0], rsi
mov dword [rsp + 0xe8], 1
mov qword [rsp + 0xc0], rsi
mov qword [rsp + 0xd8], rax
mov dword [rsp + 0xc8], 1
jmp 0x3ff909c26
mov rcx, rbx
shl rcx, 4
mov qword [rsp + 0x100], rcx
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0x108], rax
jmp 0x3ff909ba9
mov rcx, r8
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0x108], rax
jmp 0x3ff90a1f6
movabs rax, 0x8000000000000001
movabs rbp, 0x8000000000000000
jmp 0x3ff909abe
xor eax, eax
jmp 0x3ff909fc4
lea r8, [0x3ff951677]
mov edx, 0xf5
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
lea r8, str._loop______mpfr_prec_t______mpfr_uprec_t___1_____1____256______q_
mov edx, 0x102
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 sub.cygwin1.dll___stack_chk_fail
nop
nop
nop
nop
nop
nop
nop
nop
nop