Function at 0x3ff907610
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
mov eax, 0x1308
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
call fcn.3ff93a270
sub rsp, rax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rbx, qword [rax]
mov qword [rsp + 0x12f8], rbx
xor ebx, ebx
mov rax, qword [rdx + 0x10]
mov qword [rsp + 0x120], rdx
movabs rdx, 0x8000000000000004
mov qword [rsp + 0xe8], rcx
mov dword [rsp + 0x1360], r8d
cmp rax, rdx
jl 0x3ff908ae0
mov r8, rax
neg r8
add r8, r8
test r8, r8
jle 0x3ff90769b
mov rbx, qword [rsp + 0xe8]
add r8, 1
mov rbx, qword [rbx]
lea rdx, [rbx + 1]
mov qword [rsp + 0x38], rbx
cmp rdx, r8
jb 0x3ff908c02
mov rbx, qword [rsp + 0x120]
mov rcx, qword [0x3ff956770]
mov dword [rsp + 0x198], 1
mov qword [rsp + 0x1a0], rax
mov rdx, qword [rbx]
mov qword [rsp + 0x190], rdx
mov rdx, qword [rbx + 0x18]
mov qword [rsp + 0x1a8], rdx
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov qword [rsp + 0x140], rax
mov eax, dword [rax]
mov dword [rsp + 0x13c], eax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov rbx, rax
mov qword [rsp + 0x168], rax
mov rax, qword [rax]
mov qword [rsp + 0x158], rax
call fcn.3ff93a260
xor r8d, r8d
mov edx, 1
mov rdi, qword [rax]
mov qword [rsp + 0x170], rax
mov qword [rsp + 0x160], rdi
movabs rdi, 0xc000000000000001
mov qword [rbx], rdi
movabs rbx, 0x3fffffffffffffff
mov qword [rax], rbx
lea rax, [rsp + 0x190]
mov rcx, rax
mov qword [rsp + 0x128], rax
call sym.cygmpfr_6.dll_mpfr_cmp_ui_2exp
mov dword [rsp + 0x114], eax
test eax, eax
je 0x3ff908550
mov rax, qword [rsp + 0xe8]
mov rsi, qword [rax]
cmp rsi, 1
je 0x3ff908b60
jle 0x3ff908b95
lea rdx, [rsi - 1]
mov eax, 0x40
bsr rdx, rdx
xor edx, 0x3f
sub eax, edx
cdqe
add rsi, rax
lea rax, [rsi + 4]
lea rdi, [rsi + 0x44]
mov qword [rsp + 0x118], rax
lea rax, [rsp + 0x180]
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0x58], rax
call sym.cygmpfr_6.dll_mpfr_mpz_init2
movabs rax, 0x7ffffffffffffeff
cmp rdi, rax
jg 0x3ff9425d0
lea rbx, [rsi + 0x82]
add rsi, 0x43
cmovs rsi, rbx
sar rsi, 6
add rsi, 1
lea rax, [rsi*4]
cmp rax, 0x10
jg 0x3ff907bd0
lea rax, [rsp + 0x240]
mov qword [rsp + 0x230], 0
mov qword [rsp + 0x238], rax
lea rdx, [rax + rsi*8]
xor r12d, r12d
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x208], rdx
mov rdx, rsi
shl rdx, 4
mov qword [rsp + 0x1d0], rdi
add rdx, rax
mov dword [rsp + 0x1d8], 1
mov qword [rsp + 0x228], rdx
lea rdx, [rsi + rsi*2]
lea rax, [rax + rdx*8]
mov qword [rsp + 0x1f0], rdi
mov dword [rsp + 0x1f8], 1
mov qword [rsp + 0x210], rdi
mov dword [rsp + 0x218], 1
mov qword [rsp + 0x1b0], rdi
mov qword [rsp + 0x1c8], rax
mov dword [rsp + 0x1b8], 1
mov qword [rsp + 0x178], 0x40
mov rax, qword [rsp + 0x1a0]
mov ebp, 2
sub rbp, rax
test rax, rax
mov eax, 1
cmovns rbp, rax
add rbp, qword [rsp + 0x118]
cmp rbp, 0xfffffffffffffffe
je 0x3ff908b48
cmp rbp, 0xffffffffffffffff
jl 0x3ff908b2c
mov edx, 0x40
lea r13, [rbp + 2]
add rbp, 1
mov edi, edx
bsr r13, r13
xor r13d, 0x3f
sub edi, r13d
lea eax, [rdi + rdi*2]
cmp eax, 3
je 0x3ff907933
jle 0x3ff908b48
mov eax, 0x3f
sub eax, r13d
lea eax, [rax + rax*2]
cdqe
bsr rax, rax
xor eax, 0x3f
sub edx, eax
movsxd rdx, edx
add rbp, rdx
mov rax, qword [rsp + 0xe8]
cmp qword [rax], 0x64
jg 0x3ff907b80
mov qword [rsp + 0x130], 0
xor ebx, ebx
movabs rax, 0x7ffffffffffffeff
mov rdx, qword [rsp + 0x230]
cmp rbp, rax
jg 0x3ff908e14
lea rsi, [rbp - 1]
sar rsi, 6
add rsi, 1
mov r8, rsi
shl r8, 5
mov qword [rsp + 0x230], r8
test rdx, rdx
jne 0x3ff908680
mov rcx, r8
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0x238], rax
lea rdx, [rax + rsi*8]
mov qword [rsp + 0x1e8], rax
mov qword [rsp + 0x208], rdx
mov rdx, rsi
shl rdx, 4
mov qword [rsp + 0x1d0], rbp
add rdx, rax
mov dword [rsp + 0x1d8], 1
mov qword [rsp + 0x228], rdx
lea rdx, [rsi + rsi*2]
lea rax, [rax + rdx*8]
mov qword [rsp + 0x1f0], rbp
mov qword [rsp + 0x1c8], rax
mov eax, 0x41
sub eax, r13d
mov dword [rsp + 0x1f8], 1
lea eax, [rax + rax*2]
mov qword [rsp + 0x210], rbp
mov dword [rsp + 0x218], 1
mov qword [rsp + 0x1b0], rbp
mov dword [rsp + 0x1b8], 1
mov dword [rsp + 0x138], eax
cmp r12d, eax
jge 0x3ff908ac8
movsxd rdx, r12d
lea rax, [rsp + 0x6c0]
not r12d
mov r13, rdx
mov qword [rsp + 0x68], rax
shl r13, 4
add r13, rax
mov eax, dword [rsp + 0x138]
add eax, r12d
add rax, rdx
shl rax, 4
lea rsi, [rsp + rax + 0x6d0]
nop dword [rax]
mov rcx, r13
mov rdx, rbp
add r13, 0x10
call sym.cygmpfr_6.dll_mpfr_mpz_init2
cmp rsi, r13
jne 0x3ff907a78
mov r9d, dword [rsp + 0x114]
test r9d, r9d
jle 0x3ff9089c0
mov r8, qword [rsp + 0x128]
xor r9d, r9d
mov edx, 1
neg rbx
lea r15, [rsp + 0x1d0]
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_ui_div
mov rsi, qword [rsp + 0x1e0]
cmp rbx, rsi
jge 0x3ff9089f7
mov r8d, dword [rsp + 0x114]
mov r14, qword [rsp + 0x128]
lea r12, [rsp + 0x1f0]
test r8d, r8d
setg bpl
xor r13d, r13d
jmp 0x3ff907b1e
mov r8, r14
mov rdx, r12
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_mul
mov rax, qword [rsp + 0x1e0]
add r13, 1
cmp rax, rbx
jle 0x3ff907bf8
mov rsi, rax
xor r8d, r8d
mov rdx, r15
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_sqr
xor r9d, r9d
mov rdx, r12
mov rcx, r12
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_add_ui
xor r8d, r8d
mov rdx, r12
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_sqrt
xor r9d, r9d
mov rdx, r12
mov rcx, r12
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_sub_ui
xor r9d, r9d
test r13, r13
jne 0x3ff907b6f
test bpl, bpl
jne 0x3ff907af8
mov r8, r15
mov rdx, r12
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_div
jmp 0x3ff907b06
cmp rbp, 1
je 0x3ff908c3c
jle 0x3ff908c54
mov ebx, 0x40
lea rax, [rbp - 1]
bsr rax, rax
xor eax, 0x3f
sub ebx, eax
mov eax, ebx
shr ebx, 0x1f
add ebx, eax
sar ebx, 1
sub ebx, 3
movsxd rbx, ebx
lea rax, [rbx + rbx + 9]
mov qword [rsp + 0x130], rax
add rbp, qword [rsp + 0x130]
jmp 0x3ff907953
mov rcx, rsi
shl rcx, 5
mov qword [rsp + 0x230], rcx
call sym.cygmpfr_6.dll_mpfr_allocate_func
mov qword [rsp + 0x238], rax
jmp 0x3ff907826
add rsi, rsi
mov eax, 9
mov qword [rsp + 0x148], r13
sub rax, rsi
mov qword [rsp + 0x150], rax
lea eax, [rdi + 1]
mov qword [rsp + 0xc8], r15
movabs rdx, 0x8000000000000001
add rax, 1
mov qword [rsp + 0x1c0], rdx
shl rax, 4
add rax, qword [rsp + 0x68]
mov qword [rsp + 0x90], 1
mov qword [rsp + 0x70], rax
lea eax, [rdi - 1]
mov dword [rsp + 0x64], eax
lea rax, [rsp + 0x1b0]
mov qword [rsp + 0xf8], rax
mov qword [rsp + 0xa8], rdx
jmp 0x3ff907d5a
cmp rdi, 4
je 0x3ff908a30
ja 0x3ff9081c8
cmp rdi, 1
je 0x3ff908a48
cmp rdi, 2
jne 0x3ff907e3b
lea r12, [rsp + 0x210]
lea rdx, [0x3ff951458]
mov rcx, r12
call fcn.3ff9075b0
nop dword [rax + rax]
mov rbx, qword [rsp + 0xe0]
xor r9d, r9d
mov rdx, r12
mov rcx, r12
mov r8, rbx
call sym.cygmpfr_6.dll_mpfr_mul
mov rdx, qword [rsp + 0xf8]
xor r9d, r9d
mov r8, r12
mov rcx, rdx
call sym.cygmpfr_6.dll_mpfr_add
xor r9d, r9d
mov r8, rbx
mov rcx, r12
mov rdi, qword [rsp + 0xc8]
mov rdx, rdi
call sym.cygmpfr_6.dll_mpfr_sub
xor r9d, r9d
mov r8, rbx
mov rdx, rdi
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_mul
xor r9d, r9d
mov rdx, rdi
mov rcx, rdi
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_add_ui
xor r9d, r9d
mov r8, rdi
mov rdx, r12
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_div
mov rax, qword [rsp + 0x78]
sub dword [rsp + 0x64], 1
shl qword [rsp + 0x90], 1
mov qword [rsp + 0x70], rax
mov eax, dword [rsp + 0x64]
cmp eax, 0xffffffff
je 0x3ff908320
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x1e0], rax
je 0x3ff908320
mov rdi, qword [rsp + 0x90]
lea rbx, [rsp + 0x1f0]
mov rdx, qword [rsp + 0xc8]
xor r9d, r9d
mov rcx, rbx
mov qword [rsp + 0xe0], rbx
mov r8, rdi
call sym.cygmpfr_6.dll_mpfr_mul_2ui
mov r8d, 1
mov rdx, rbx
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_rint
mov rax, qword [rsp + 0x70]
sub rax, 0x10
mov qword [rsp + 0x78], rax
mov rax, qword [rsp + 0xa8]
cmp qword [rsp + 0x200], rax
je 0x3ff907d36
mov rsi, qword [rsp + 0x58]
mov rdx, rbx
mov rcx, rsi
call sym.cygmpfr_6.dll_mpfr_get_z_2exp
mov rdx, rsi
mov rcx, rsi
neg rax
mov r8, rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_tdiv_q_2exp]
mov qword [rsp + 0x108], rax
call rax
xor r8d, r8d
mov rdx, rsi
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_set_z
xor r9d, r9d
mov r8, rdi
mov rdx, rbx
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov rax, qword [rsp + 0x210]
mov qword [rsp + 0x88], rax
cmp rax, 0xc0
jle 0x3ff907c78
mov eax, dword [rsp + 0x64]
mov rbx, qword [rsp + 0x70]
mov rdi, qword [rsp + 0x58]
lea esi, [rax + 1]
lea eax, [rax + rax + 4]
sub rbx, 0x10
shl rax, 4
add rax, qword [rsp + 0x68]
mov r8, rdi
mov rdx, rdi
mov rcx, rdi
mov qword [rsp + 0x78], rbx
mov rbx, qword [sym.imp.cyggmp_10.dll___gmpz_mul]
mov qword [rsp + 0x80], rax
call rbx
mov rax, qword [rsp + 0x90]
mov rcx, rdi
xor edx, edx
add rax, rax
mov qword [rsp + 0x38], rax
call qword [sym.imp.cyggmp_10.dll___gmpz_scan1]
mov rdi, rax
test rax, rax
jne 0x3ff908998
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_cmp_ui]
mov rcx, qword [rsp + 0x58]
mov edx, 1
mov qword [rsp + 0x2c0], 0
mov qword [rsp + 0xd0], rax
call rax
mov ecx, esi
mov dword [rsp + 0x48], eax
mov edi, eax
mov eax, 1
shl rax, cl
mov qword [rsp + 0x100], rax
test edi, edi
jne 0x3ff9086a0
mov rax, qword [rsp + 0x88]
xor edx, edx
mov rdi, qword [rsp + 0x100]
mov qword [rsp + 0x50], 2
mov r13d, 3
div qword [rsp + 0x38]
cmp rdi, rax
lea rdx, [rax + 1]
cmovb rdx, rdi
lea rax, [rdx - 1]
and rax, 0xfffffffffffffffe
add rax, 4
mov qword [rsp + 0xb0], rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_set_ui]
mov qword [rsp + 0xc0], rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_mul_ui]
mov qword [rsp + 0xa0], rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_mul_2exp]
mov qword [rsp + 0x40], rax
nop dword [rax]
movsxd r14, dword [rsp + 0x48]
mov r12, qword [rsp + 0x80]
mov rdx, r13
lea rbp, [r13 - 2]
mov rax, qword [rsp + 0xc0]
lea rsi, [r14 + 1]
shl rsi, 4
lea r15, [r12 + rsi]
sub rsi, 0x10
mov rcx, r15
call rax
mov rax, qword [rsp + 0x68]
mov r8, qword [rsp + 0x38]
mov rdx, r15
lea rdi, [rax + rsi]
add rsi, r12
mov rax, qword [rsp + 0x40]
mov rcx, rdi
call rax
mov r8, rbp
mov rdx, rdi
mov rcx, rdi
call qword [sym.imp.cyggmp_10.dll___gmpz_sub_ui]
mov rdx, r15
mov r8, rbp
mov rcx, rsi
mov rax, qword [rsp + 0xa0]
call rax
mov rax, qword [rsp + 0x50]
mov qword [rsp + r14*8 + 0x4c0], 1
mov edx, eax
mov dword [rsp + 0x110], eax
sar edx, 1
movsxd r11, edx
and edx, 1
jne 0x3ff908628
lea rax, [rsp + 0x4c0]
mov qword [rsp + 0x98], r13
mov r13, r11
mov r15d, 2
mov qword [rsp + 0x70], rax
jmp 0x3ff90802e
sub r14, 1
mov rdi, rbp
mov rsi, r12
add r15, 1
lea rbp, [rdi - 0x10]
lea r12, [rsi - 0x10]
mov rdx, rdi
mov rcx, rdi
mov r8, r12
mov dword [rsp + 0x48], r14d
shr r13, 1
call rbx
mov r8, rsi
mov rdx, rbp
mov rcx, rbp
call rbx
mov r8, qword [rsp + 0x38]
lea ecx, [r15 - 1]
mov rax, qword [rsp + 0x40]
mov rdx, rbp
shl r8, cl
mov rcx, rbp
call rax
mov r8, rdi
mov rdx, rbp
mov rcx, rbp
call qword [sym.imp.cyggmp_10.dll___gmpz_add]
mov r8, rsi
mov rdx, r12
mov rcx, r12
call rbx
mov rax, qword [rsp + 0x70]
mov qword [rax + r14*8 - 8], r15
test r13b, 1
je 0x3ff908020
mov r13, qword [rsp + 0x98]
add qword [rsp + 0x50], 2
add r13, 4
mov rax, qword [rsp + 0x50]
cmp qword [rsp + 0xb0], rax
jne 0x3ff907f60
cmp dword [rsp + 0x48], 1
je 0x3ff908210
movsxd rbp, dword [rsp + 0x48]
mov rdi, qword [rsp + 0x68]
lea rsi, [rbp - 1]
mov rax, rsi
shl rax, 4
lea r13, [rdi + rax]
mov rdi, qword [rsp + 0x80]
lea r15, [rdi + rax - 0x10]
lea rax, [rsp + 0x4c0]
xor edi, edi
mov qword [rsp + 0x48], rax
mov r12, r15
jmp 0x3ff908178
lea r14, [r13 - 0x10]
lea r15, [r12 + 0x10]
mov r8, r15
mov rdx, r14
mov rcx, r14
call rbx
mov rax, qword [rsp + 0x48]
mov edx, 1
mov r8, qword [rsp + 0x38]
mov rcx, qword [rax + rbp*8 - 8]
mov rax, qword [rsp + 0x40]
mov rbp, rsi
shl rdx, cl
mov rcx, r14
add rdi, rdx
mov rdx, r14
imul r8, rdi
call rax
mov r8, r13
mov rdx, r14
mov rcx, r14
call qword [sym.imp.cyggmp_10.dll___gmpz_add]
mov r13, r14
mov rdx, r12
mov rcx, r12
mov r8, r15
sub r12, 0x10
call rbx
cmp esi, 1
jle 0x3ff908210
sub rsi, 1
mov rdx, r13
mov rcx, r13
mov r8, r12
call rbx
mov rcx, qword [rsp + 0x58]
mov rax, qword [rsp + 0xd0]
mov edx, 1
call rax
test eax, eax
je 0x3ff908108
lea eax, [rbp - 2]
mov rdx, r13
mov rcx, r13
cdqe
mov r8, qword [rsp + rax*8 + 0x4c0]
shl r8, 4
add r8, qword [rsp + 0x78]
call rbx
jmp 0x3ff908108
cmp qword [rsp + 0x90], 8
jne 0x3ff907e3b
mov rax, qword [rsp + 0x188]
mov rax, qword [rax]
lea rdx, [rax + rax*2 + 0xc]
lea rax, [0x3ff951440]
lea r12, [rsp + 0x210]
lea rdx, [rax + rdx*8]
mov rcx, r12
call fcn.3ff9075b0
jmp 0x3ff907cb8
mov edx, dword [rsp + 0x6c4]
mov eax, dword [rsp + 0x6c4]
mov rbx, qword [rsp + 0x88]
sar edx, 0x1f
xor eax, edx
lea r8, [rbx + rbx]
sub eax, edx
mov rdx, qword [rsp + 0x6c8]
cdqe
bsr rdx, qword [rdx + rax*8 - 8]
xor edx, 0x3f
shl rax, 6
movsxd rdx, edx
sub rax, rdx
mov rbx, rax
sub rbx, r8
js 0x3ff908660
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x108]
mov r8, rbx
mov rdx, rcx
call rax
mov rdi, qword [rsp + 0x80]
mov eax, dword [rdi + 4]
mov edx, eax
mov dword [rsp + 0x48], eax
mov eax, dword [rdi + 4]
sar edx, 0x1f
xor eax, edx
sub eax, edx
mov rdx, qword [rdi + 8]
cdqe
bsr rdx, qword [rdx + rax*8 - 8]
xor edx, 0x3f
shl rax, 6
movsxd rdx, edx
sub rax, rdx
mov r8, rax
sub r8, qword [rsp + 0x88]
sub rbx, r8
test r8, r8
js 0x3ff908638
mov rax, qword [rsp + 0x108]
mov rdx, rdi
mov rcx, rdi
call rax
mov rdi, qword [rsp + 0x68]
lea r12, [rsp + 0x210]
mov r8, qword [rsp + 0x80]
mov rdx, rdi
mov rcx, rdi
call qword [sym.imp.cyggmp_10.dll___gmpz_tdiv_q]
mov r8d, 3
mov rdx, rdi
mov rcx, r12
call sym.cygmpfr_6.dll_mpfr_set_z
mov eax, dword [rsp + 0x110]
sub eax, 1
cdqe
imul rax, qword [rsp + 0x38]
sub rbx, rax
add qword [rsp + 0x220], rbx
jmp 0x3ff907cb8
mov rbx, qword [rsp + 0xf8]
mov r15, qword [rsp + 0xc8]
xor r9d, r9d
mov r8, r15
mov rdx, rbx
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_add
mov rcx, rbx
xor r9d, r9d
mov rdx, rbx
mov r8, qword [rsp + 0x148]
call sym.cygmpfr_6.dll_mpfr_mul_2ui
mov ecx, dword [rsp + 0x114]
test ecx, ecx
jle 0x3ff9083ae
mov rcx, qword [0x3ff956720]
lea r12, [rsp + 0x1f0]
call fcn.3ff93a260
xor r8d, r8d
mov rcx, r12
mov rdx, rax
call sym.cygmpfr_6.dll_mpfr_cache
xor r9d, r9d
mov rdx, r12
mov rcx, r12
mov r8d, 1
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov rcx, qword [rsp + 0xf8]
xor r9d, r9d
mov rdx, r12
mov r8, rcx
call sym.cygmpfr_6.dll_mpfr_sub
mov dword [rsp + 0x1b8], 1
movabs rax, 0x8000000000000004
cmp qword [rsp + 0x1c0], rax
jl 0x3ff908a68
mov eax, dword [rsp + 0x1360]
xor r9d, r9d
mov rcx, qword [rsp + 0x1c8]
mov r8, qword [rsp + 0x130]
test eax, eax
mov rax, qword [rsp + 0x1b0]
sete r9b
add r8, qword [rsp + 0x118]
sub r8, qword [rsp + 0x150]
lea rdx, [rax - 1]
mov rax, qword [rsp + 0xe8]
sar rdx, 6
add rdx, 1
add r9, qword [rax]
call sym.cygmpfr_6.dll_mpfr_round_p
test eax, eax
je 0x3ff908a68
mov rax, qword [rsp + 0x120]
mov rdx, qword [rsp + 0xf8]
mov r8d, dword [rsp + 0x1360]
mov rcx, qword [rsp + 0xe8]
mov r9d, dword [rax + 8]
call sym.cygmpfr_6.dll_mpfr_set4
mov edx, dword [rsp + 0x138]
mov r12d, eax
test edx, edx
jle 0x3ff908491
mov eax, dword [rsp + 0x138]
mov rsi, qword [rsp + 0x68]
sub eax, 1
shl rax, 4
lea rbx, [rsp + rax + 0x6d0]
nop
mov rcx, rsi
add rsi, 0x10
call sym.cygmpfr_6.dll_mpfr_mpz_clear
cmp rsi, rbx
jne 0x3ff908480
mov rcx, qword [rsp + 0x58]
call sym.cygmpfr_6.dll_mpfr_mpz_clear
mov rdx, qword [rsp + 0x230]
test rdx, rdx
je 0x3ff9084b5
mov rcx, qword [rsp + 0x238]
call sym.cygmpfr_6.dll_mpfr_free_func
mov rax, qword [rsp + 0x140]
mov ebx, dword [rsp + 0x13c]
mov rdi, qword [rsp + 0x158]
mov dword [rax], ebx
mov rax, qword [rsp + 0x168]
mov rbx, qword [rsp + 0x160]
mov qword [rax], rdi
mov rax, qword [rsp + 0x170]
mov qword [rax], rbx
mov rax, qword [rsp + 0xe8]
mov rax, qword [rax + 0x10]
cmp rbx, rax
jl 0x3ff908506
cmp rdi, rax
jle 0x3ff908600
mov r8d, dword [rsp + 0x1360]
mov rcx, qword [rsp + 0xe8]
mov edx, r12d
call sym.cygmpfr_6.dll_mpfr_check_range
mov r12d, eax
mov rax, qword [sym.imp.cygwin1.dll___stack_chk_guard]
mov rbx, qword [rsp + 0x12f8]
xor rbx, qword [rax]
jne 0x3ff908e0e
mov eax, r12d
add rsp, 0x1308
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rax, qword [rsp + 0x120]
mov rcx, qword [0x3ff956720]
mov ebx, dword [rax + 8]
call fcn.3ff93a260
mov rdx, rax
test ebx, ebx
jle 0x3ff908c6c
mov r8d, dword [rsp + 0x1360]
mov rcx, qword [rsp + 0xe8]
call sym.cygmpfr_6.dll_mpfr_cache
mov r12d, eax
mov rbx, qword [rsp + 0xe8]
mov r9d, dword [rsp + 0x1360]
mov r8d, 2
mov rdx, rbx
mov rcx, rbx
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov rax, qword [rsp + 0x140]
mov edi, dword [rsp + 0x13c]
mov rsi, qword [rsp + 0x158]
mov dword [rax], edi
mov rax, qword [rsp + 0x168]
mov rdi, qword [rsp + 0x160]
mov qword [rax], rsi
mov rax, qword [rsp + 0x170]
mov qword [rax], rdi
mov rax, qword [rbx + 0x10]
cmp rdi, rax
jl 0x3ff908506
cmp rsi, rax
jg 0x3ff908506
nop dword [rax + rax]
test r12d, r12d
je 0x3ff908521
mov eax, dword [rsp + 0x13c]
mov rbx, qword [rsp + 0x140]
or eax, 8
mov dword [rbx], eax
jmp 0x3ff908521
add dword [rsp + 0x48], 1
jmp 0x3ff90809f
mov r8, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x80]
sub r8, rax
mov rdx, rcx
mov rax, qword [rsp + 0x40]
call rax
jmp 0x3ff9082ca
mov rcx, qword [rsp + 0x68]
sub r8, rax
mov rax, qword [rsp + 0x40]
mov rdx, rcx
call rax
jmp 0x3ff90826f
mov rcx, qword [rsp + 0x238]
call sym.cygmpfr_6.dll_mpfr_reallocate_func
mov qword [rsp + 0x238], rax
jmp 0x3ff9079a2
mov rdx, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x78]
call qword [sym.imp.cyggmp_10.dll___gmpz_set]
mov eax, dword [rsp + 0x64]
mov rdi, qword [rsp + 0x70]
shl rax, 4
lea rsi, [rdi + rax + 0x10]
nop word [rax + rax]
lea rdx, [rdi - 0x10]
mov rcx, rdi
add rdi, 0x10
mov r8, rdx
call rbx
cmp rsi, rdi
jne 0x3ff9086c8
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_set_ui]
mov dword [rsp + 0x48], 0
mov qword [rsp + 0xd8], 2
mov qword [rsp + 0xc0], rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_mul_ui]
mov qword [rsp + 0xf0], 3
mov qword [rsp + 0xa0], rax
mov rax, qword [sym.imp.cyggmp_10.dll___gmpz_mul_2exp]
mov qword [rsp + 0x40], rax
nop word [rax + rax]
movsxd rbp, dword [rsp + 0x48]
mov r14, qword [rsp + 0x80]
mov rsi, qword [rsp + 0xf0]
mov rax, qword [rsp + 0xc0]
lea rdi, [rbp + 1]
shl rdi, 4
lea r13, [rsi - 2]
mov rdx, rsi
lea r12, [r14 + rdi]
mov rcx, r12
call rax
mov rsi, qword [rsp + 0x68]
mov r8, r13
mov rdx, qword [rsp + 0x58]
mov rax, qword [rsp + 0xa0]
lea r15, [rsi + rdi]
sub rdi, 0x10
add rsi, rdi
add rdi, r14
mov rcx, r15
call rax
mov r10, qword [rsp + 0x40]
mov r8, qword [rsp + 0x38]
mov rdx, r12
mov rcx, rsi
call r10
mov r8, r15
mov rdx, rsi
mov rcx, rsi
call qword [sym.imp.cyggmp_10.dll___gmpz_sub]
mov r8, r13
mov rdx, r12
mov rcx, rdi
mov rax, qword [rsp + 0xa0]
call rax
mov rax, qword [rsp + 0xd8]
mov qword [rsp + rbp*8 + 0x4c0], 1
mov r13d, eax
mov dword [rsp + 0x110], eax
sar r13d, 1
movsxd r11, r13d
and r13d, 1
mov dword [rsp + 0x98], r13d
jne 0x3ff908a18
lea rax, [rsp + 0x4c0]
mov r15d, 2
mov r13, qword [rsp + 0x70]
mov qword [rsp + 0xb8], rax
lea rax, [rsp + 0x2c0]
mov r14, r15
mov r15, rdi
mov qword [rsp + 0xb0], rax
mov rax, r11
jmp 0x3ff90884b
test rcx, rcx
jne 0x3ff908950
add r14, 1
sub rbp, 1
mov rsi, r12
mov r15, rdi
add r13, 0x10
lea r12, [rsi - 0x10]
lea rdi, [r15 - 0x10]
mov qword [rsp + 0x50], rax
mov rdx, rsi
mov rcx, rsi
mov r8, rdi
mov dword [rsp + 0x48], ebp
call rbx
mov rdx, rsi
mov rcx, rsi
mov r8, r13
call rbx
mov r8, r15
mov rdx, r12
mov rcx, r12
call rbx
mov r8, qword [rsp + 0x38]
lea ecx, [r14 - 1]
mov r10, qword [rsp + 0x40]
mov rdx, r12
shl r8, cl
mov rcx, r12
call r10
mov r8, rsi
mov rdx, r12
mov rcx, r12
call qword [sym.imp.cyggmp_10.dll___gmpz_add]
mov r8, r15
mov rdx, rdi
mov rcx, rdi
call rbx
mov ecx, dword [r13 + 0x14]
mov edx, dword [r13 + 0x14]
mov rax, qword [rsp + 0x38]
mov rsi, qword [rsp + 0xb8]
sar ecx, 0x1f
xor edx, ecx
mov qword [rsi + rbp*8 - 8], r14
sub edx, ecx
mov rcx, qword [r13 + 0x18]
movsxd rdx, edx
bsr r8, qword [rcx + rdx*8 - 8]
mov ecx, r14d
xor r8d, 0x3f
shl rdx, 6
shl rax, cl
movsxd r8, r8d
lea rcx, [rax + r8 - 1]
mov rax, qword [rsp + 0x50]
sub rcx, rdx
cmp ebp, 1
mov rdx, rcx
je 0x3ff908913
lea ecx, [rbp - 2]
movsxd rcx, ecx
add rdx, qword [rsp + rcx*8 + 0x2c0]
mov rsi, qword [rsp + 0xb0]
shr rax, 1
mov rcx, rax
mov qword [rsi + rbp*8 - 8], rdx
and ecx, 1
cmp qword [rsp + 0x88], rdx
jge 0x3ff908830
test rcx, rcx
jne 0x3ff9080bc
mov dword [rsp + 0x98], 1
jmp 0x3ff908839
movzx r13d, byte [rsp + 0x98]
xor r13d, 1
mov rdi, qword [rsp + 0xd8]
cmp qword [rsp + 0x100], rdi
seta al
add qword [rsp + 0xf0], 4
add rdi, 2
mov qword [rsp + 0xd8], rdi
test al, r13b
jne 0x3ff908730
jmp 0x3ff9080bc
mov rcx, qword [rsp + 0x58]
mov r8, rax
mov rax, qword [rsp + 0x108]
mov rdx, rcx
call rax
sub qword [rsp + 0x38], rdi
jmp 0x3ff907ea3
mov r9d, dword [rsp + 0x198]
mov rdx, qword [rsp + 0x128]
xor r8d, r8d
neg rbx
lea r15, [rsp + 0x1d0]
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_set4
mov rsi, qword [rsp + 0x1e0]
cmp rbx, rsi
jl 0x3ff907ad1
mov qword [rsp + 0x148], 0
mov qword [rsp + 0x150], 0
jmp 0x3ff907c13
add dword [rsp + 0x48], 1
mov r13d, 1
jmp 0x3ff90895d
mov rax, qword [rsp + 0x188]
mov rax, qword [rax]
lea rdx, [rax + rax*2 + 3]
jmp 0x3ff9081e7
lea r12, [rsp + 0x210]
lea rdx, [0x3ff951440]
mov rcx, r12
call fcn.3ff9075b0
jmp 0x3ff907cb8
movabs rax, 0x7ffffffffffffeff
sub rax, qword [rsp + 0x118]
cmp rax, qword [rsp + 0x178]
jl 0x3ff908dd9
mov rbx, qword [rsp + 0x178]
add qword [rsp + 0x118], rbx
mov rbx, qword [rsp + 0x118]
mov r12d, dword [rsp + 0x138]
mov rax, rbx
shr rax, 0x3f
add rax, rbx
sar rax, 1
mov qword [rsp + 0x178], rax
jmp 0x3ff9078b7
lea rax, [rsp + 0x6c0]
mov qword [rsp + 0x68], rax
jmp 0x3ff907a8c
sub rdx, 2
cmp rax, rdx
je 0x3ff908dbe
movabs rdx, 0x8000000000000003
cmp rax, rdx
je 0x3ff908cb9
mov rbx, qword [rsp + 0xe8]
xor r12d, r12d
movabs rax, 0x8000000000000001
mov qword [rbx + 0x10], rax
mov rax, qword [rsp + 0x120]
mov eax, dword [rax + 8]
mov dword [rbx + 8], eax
jmp 0x3ff908521
lea r8, str.__realprec__sup___3____1
mov edx, 0x176
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
nop dword [rax]
lea r8, str._3n0_2____1
mov edx, 0x178
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
mov edx, 0x45
mov esi, 2
mov edi, 0x45
lea rax, [rsp + 0x180]
mov rcx, rax
mov qword [rsp + 0x58], rax
call sym.cygmpfr_6.dll_mpfr_mpz_init2
mov qword [rsp + 0x118], 5
jmp 0x3ff90780a
lea r8, str.___atan____mpfr_prec_____1
mov edx, 0x166
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
mov rax, qword [rsp + 0xe8]
mov edx, 0x40
mov rax, qword [rax]
mov qword [rsp + 0x38], rax
sub rax, 1
bsr rax, rax
xor eax, 0x3f
sub edx, eax
movsxd rax, edx
add rsi, rax
lea rax, [rsi + 4]
lea rdi, [rsi + 0x44]
mov qword [rsp + 0x118], rax
lea rax, [rsp + 0x180]
mov rdx, rdi
mov rcx, rax
mov qword [rsp + 0x58], rax
call sym.cygmpfr_6.dll_mpfr_mpz_init2
jmp 0x3ff9077e1
mov eax, dword [rsp + 0x1360]
mov rbx, qword [rsp + 0x120]
xor r9d, r9d
mov rcx, qword [rsp + 0xe8]
mov dword [rsp + 0x20], eax
mov rdx, rbx
call sym.cygmpfr_6.dll_mpfr_round_near_x
mov r12d, eax
test eax, eax
jne 0x3ff908521
mov rax, qword [rbx + 0x10]
jmp 0x3ff90769b
mov qword [rsp + 0x130], 3
mov rbx, 0xfffffffffffffffd
jmp 0x3ff907bbe
lea r8, [0x3ff9513c6]
mov edx, 0x17f
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
cmp dword [rsp + 0x1360], 2
mov r8d, 3
je 0x3ff908c93
cmp dword [rsp + 0x1360], 3
mov r8d, 2
cmovne r8d, dword [rsp + 0x1360]
mov rdi, qword [rsp + 0xe8]
mov rcx, rdi
call sym.cygmpfr_6.dll_mpfr_cache
mov r12d, eax
test ebx, ebx
je 0x3ff90858a
neg dword [rdi + 8]
neg r12d
jmp 0x3ff90858a
mov rcx, qword [0x3ff956770]
call fcn.3ff93a260
mov rcx, qword [0x3ff956760]
mov ebp, dword [rax]
mov rdi, rax
call fcn.3ff93a260
mov rcx, qword [0x3ff956750]
mov r13, 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 rdx, rax
mov rax, qword [rsp + 0x120]
mov r10d, dword [rax + 8]
test r10d, r10d
jg 0x3ff908df1
cmp dword [rsp + 0x1360], 2
mov r8d, 3
je 0x3ff908d53
cmp dword [rsp + 0x1360], 3
mov r8d, 2
cmovne r8d, dword [rsp + 0x1360]
mov r15, qword [rsp + 0xe8]
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_cache
neg dword [r15 + 8]
neg eax
mov r12d, eax
mov r15, qword [rsp + 0xe8]
mov r9d, dword [rsp + 0x1360]
mov r8d, 1
mov rdx, r15
mov rcx, r15
call sym.cygmpfr_6.dll_mpfr_div_2ui
mov dword [rdi], ebp
mov qword [rsi], r13
mov qword [rbx], r14
mov rax, qword [r15 + 0x10]
cmp r13, rax
jg 0x3ff908506
cmp r14, rax
jl 0x3ff908506
test r12d, r12d
je 0x3ff908521
or ebp, 8
mov dword [rdi], ebp
jmp 0x3ff908521
mov qword [rcx + 0x10], rax
mov rcx, qword [0x3ff956770]
xor r12d, r12d
call fcn.3ff93a260
or dword [rax], 4
jmp 0x3ff908521
lea r8, [0x3ff9513d8]
mov edx, 0x1f6
lea rcx, str._mnt_share_cygpkgs_mpfr_mpfr.x86_64_src_mpfr_4.0.2_src_atan.c
call sym.cygmpfr_6.dll_mpfr_assert_fail
mov r8d, dword [rsp + 0x1360]
mov rcx, qword [rsp + 0xe8]
call sym.cygmpfr_6.dll_mpfr_cache
mov r12d, eax
jmp 0x3ff908d6c
call sub.cygwin1.dll___stack_chk_fail
nop
jmp 0x3ff9425d0