// File: /workspace/github_cpp_makefile_star2_O1/mshabbirhasan[P]ups-indel/include/seqan/system/file_sync.h
// Function: seqan::File<seqan::Sync<void>>::openTemp(int)
bool openTemp(int openMode = DefaultOpenTempMode<File>::VALUE) {
            // Construct the pattern for the temporary file.
            //
            // First, try to get the temporary directory from the environment
            // variables TMPDIR, TMP.
            CharString tmpDir;
            if ((getuid() == geteuid()) && (getgid() == getegid())) 
			{
                char * res;
                if ((res = getenv("TMPDIR")) != NULL)
                    tmpDir = res;
                else
                    if ((res = getenv("TMP")) != NULL)
                        tmpDir = res;
            }
            // If this does not work, try to use the constant
            // SEQAN_DEFAULT_TMPDIR, fall back to "/tmp", if this does not
            // work.
#ifdef SEQAN_DEFAULT_TMPDIR
            if (empty(tmpDir))
                tmpDir = SEQAN_DEFAULT_TMPDIR;
#else  // #ifdef SEQAN_DEFAULT_TMPDIR
            if (empty(tmpDir))
                tmpDir = "/tmp";
#endif  // #ifdef SEQAN_DEFAULT_TMPDIR

            // At this point, we have a temporary directory.  Now, we add the
            // file name template to get the full path template.
            append(tmpDir, "/SQNXXXXXX");
            // Open temporary file and unlink it immediately afterwards so the
            // memory is released when the program exits.
            int oldMode = umask(077);  // Create with restrictive permissions.
			if ((handle = ::mkstemp(toCString(tmpDir))) == -1) {
			    umask(oldMode);  // Reset umask mode.
				if (!(openMode & OPEN_QUIET))
					::std::cerr << "Couldn't create temporary file " << tmpDir << ". (" << ::strerror(errno) << ")" << ::std::endl;
				return false;
			}
			if (!(close() && open(toCString(tmpDir), openMode))) 
			{
				umask(oldMode);  // Reset umask mode.
			    return false;
            }
			umask(oldMode);  // Reset umask mode.
            #ifdef SEQAN_DEBUG
				if (::unlink(toCString(tmpDir)) == -1 && !(openMode & OPEN_QUIET))
					::std::cerr << "Couldn't unlink temporary file " << tmpDir << ". (" << ::strerror(errno) << ")" << ::std::endl;
            #else
				::unlink(toCString(tmpDir));
			#endif
			return true;
        }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movl %esi, %ebx
movq %rdi, %r14
leaq -0x40(%rbp), %rdi
callq 0x8ef8
callq 0x3190
movl %eax, %r15d
callq 0x3200
cmpl %eax, %r15d
jne 0xaa29
callq 0x3380
movl %eax, %r15d
callq 0x3030
cmpl %eax, %r15d
jne 0xaa29
leaq 0x6b5e(%rip), %rdi      # 0x114d8
callq 0x33f0
movq %rax, -0x50(%rbp)
testq %rax, %rax
je 0xa9cb
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xadaa
leaq -0x38(%rbp), %r8
leaq 0x6962(%rip), %rax      # 0x11302
movq %rax, (%rsp)
leaq 0x691d(%rip), %rdi      # 0x112c8
leaq 0x693c(%rip), %rcx      # 0x112ee
leaq 0x6940(%rip), %r9       # 0x112f9
leaq -0x40(%rbp), %rdx
movl $0xae, %esi
xorl %eax, %eax
callq 0x91c5
jmp 0xaa21
leaq 0x6b0d(%rip), %rdi      # 0x114df
callq 0x33f0
movq %rax, -0x50(%rbp)
testq %rax, %rax
je 0xaa29
leaq -0x40(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0xadaa
leaq -0x38(%rbp), %r8
leaq 0x690a(%rip), %rax      # 0x11302
movq %rax, (%rsp)
leaq 0x68c5(%rip), %rdi      # 0x112c8
leaq 0x68e4(%rip), %rcx      # 0x112ee
leaq 0x68e8(%rip), %r9       # 0x112f9
leaq -0x40(%rbp), %rdx
movl $0xae, %esi
xorl %eax, %eax
callq 0x91c5
testb %al, %al
je 0xad8d
movq -0x38(%rbp), %rax
cmpq -0x40(%rbp), %rax
jne 0xaa86
leaq 0x6aa9(%rip), %rax      # 0x114e3
leaq -0x50(%rbp), %rsi
movq %rax, (%rsi)
leaq -0x40(%rbp), %rdi
callq 0xb2bc
leaq -0x38(%rbp), %r8
leaq 0x68ad(%rip), %rax      # 0x11302
movq %rax, (%rsp)
leaq 0x6868(%rip), %rdi      # 0x112c8
leaq 0x6887(%rip), %rcx      # 0x112ee
leaq 0x688b(%rip), %r9       # 0x112f9
leaq -0x40(%rbp), %rdx
movl $0xae, %esi
xorl %eax, %eax
callq 0x91c5
testb %al, %al
je 0xad8d
leaq 0x6a5b(%rip), %rax      # 0x114e8
leaq -0x50(%rbp), %rsi
movq %rax, (%rsi)
leaq -0x40(%rbp), %rdi
callq 0xb556
movl %ebx, -0x54(%rbp)
movl $0x3f, %edi
callq 0x35d0
movl %eax, -0x44(%rbp)
movq -0x40(%rbp), %r13
movq -0x38(%rbp), %rbx
movq %rbx, %r12
subq %r13, %r12
movq -0x30(%rbp), %rcx
cmpq %rcx, %r12
jb 0xab1e
leaq 0x1(%r12), %rax
cmpq %rax, %rcx
jae 0xab1e
movq %rax, %rcx
shrq %rcx
addq %rax, %rcx
cmpq $0x20, %rax
movl $0x20, %r15d
cmovaeq %rcx, %r15
leaq 0x1(%r15), %rdi
callq 0x3340
movq %rax, -0x40(%rbp)
movq %r15, -0x30(%rbp)
testq %r13, %r13
je 0xab16
cmpq %r13, %rbx
je 0xab0e
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x3530
movq %r13, %rdi
callq 0x32f0
addq -0x40(%rbp), %r12
movq %r12, -0x38(%rbp)
movq -0x38(%rbp), %rax
testq %rax, %rax
je 0xab2a
movb $0x0, (%rax)
movq -0x40(%rbp), %rdi
callq 0x3100
movl %eax, 0x8(%r14)
cmpl $-0x1, %eax
je 0xac88
movq (%r14), %rax
movq %r14, %rdi
callq *0x18(%rax)
testb %al, %al
je 0xac7b
movq -0x40(%rbp), %r13
movq -0x38(%rbp), %rbx
movq %rbx, %r12
subq %r13, %r12
movq -0x30(%rbp), %rcx
cmpq %rcx, %r12
jb 0xabc2
leaq 0x1(%r12), %rax
cmpq %rax, %rcx
jae 0xabc2
movq %rax, %rcx
shrq %rcx
addq %rax, %rcx
cmpq $0x20, %rax
movl $0x20, %r15d
cmovaeq %rcx, %r15
leaq 0x1(%r15), %rdi
callq 0x3340
movq %rax, -0x40(%rbp)
movq %r15, -0x30(%rbp)
testq %r13, %r13
je 0xabba
cmpq %r13, %rbx
je 0xabb2
movq %rax, %rdi
movq %r13, %rsi
movq %r12, %rdx
callq 0x3530
movq %r13, %rdi
callq 0x32f0
addq -0x40(%rbp), %r12
movq %r12, -0x38(%rbp)
movq -0x38(%rbp), %rax
testq %rax, %rax
je 0xabce
movb $0x0, (%rax)
movq -0x40(%rbp), %rsi
movq (%r14), %rax
movq %r14, %rdi
movl -0x54(%rbp), %edx
callq *0x10(%rax)
testb %al, %al
je 0xac7b
movl -0x44(%rbp), %edi
callq 0x35d0
movq -0x40(%rbp), %r14
movq -0x38(%rbp), %r15
movq %r15, %rbx
subq %r14, %rbx
movq -0x30(%rbp), %rcx
cmpq %rcx, %rbx
jb 0xac5f
leaq 0x1(%rbx), %rax
cmpq %rax, %rcx
jae 0xac5f
movq %rax, %rcx
shrq %rcx
addq %rax, %rcx
cmpq $0x20, %rax
movl $0x20, %r12d
cmovaeq %rcx, %r12
leaq 0x1(%r12), %rdi
callq 0x3340
movq %rax, -0x40(%rbp)
movq %r12, -0x30(%rbp)
testq %r14, %r14
je 0xac57
cmpq %r14, %r15
je 0xac4f
movq %rax, %rdi
movq %r14, %rsi
movq %rbx, %rdx
callq 0x3530
movq %r14, %rdi
callq 0x32f0
addq -0x40(%rbp), %rbx
movq %rbx, -0x38(%rbp)
movq -0x38(%rbp), %rax
testq %rax, %rax
je 0xac6b
movb $0x0, (%rax)
movq -0x40(%rbp), %rdi
callq 0x3180
movb $0x1, %bl
jmp 0xad73
movl -0x44(%rbp), %edi
callq 0x35d0
jmp 0xad71
movl -0x44(%rbp), %edi
callq 0x35d0
cmpb $0x0, -0x54(%rbp)
js 0xad71
movq 0xb34f(%rip), %rdi      # 0x15ff0
leaq 0x684b(%rip), %rsi      # 0x114f3
movl $0x1f, %edx
callq 0x33a0
movq 0xb337(%rip), %rdi      # 0x15ff0
leaq 0x6588(%rip), %rdx      # 0x11248
leaq -0x40(%rbp), %rsi
callq 0xb816
movq 0xb320(%rip), %rbx      # 0x15ff0
leaq 0x6721(%rip), %rsi      # 0x113f8
movl $0x3, %edx
movq %rbx, %rdi
callq 0x33a0
callq 0x3050
movl (%rax), %edi
callq 0x3130
testq %rax, %rax
je 0xad14
movq %rax, %r14
movq %rax, %rdi
callq 0x3170
movq 0xb2e9(%rip), %rdi      # 0x15ff0
movq %r14, %rsi
movq %rax, %rdx
callq 0x33a0
jmp 0xad2b
movq (%rbx), %rax
movq -0x18(%rax), %rax
leaq (%rbx,%rax), %rdi
movl 0x20(%rbx,%rax), %esi
orl $0x1, %esi
callq 0x3560
movq 0xb2be(%rip), %rbx      # 0x15ff0
leaq 0x680b(%rip), %rsi      # 0x11544
movl $0x1, %edx
movq %rbx, %rdi
callq 0x33a0
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x3310
movsbl %al, %esi
movq 0xb28c(%rip), %rdi      # 0x15ff0
callq 0x3040
movq %rax, %rdi
callq 0x3220
xorl %ebx, %ebx
movq -0x40(%rbp), %rdi
callq 0x32f0
movl %ebx, %eax
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
callq 0x31e0
jmp 0xad96
jmp 0xad96
movq %rax, %rbx
movq -0x40(%rbp), %rdi
callq 0x32f0
movq %rbx, %rdi
callq 0x35b0