// File: /workspace/github_cpp_makefile_star2_O2/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 %rbx
subq $0x28, %rsp
movl %esi, %ebx
movq %rdi, %r14
leaq -0x30(%rbp), %rdi
callq 0x6e2e
callq 0x31b0
movl %eax, %r15d
callq 0x3210
cmpl %eax, %r15d
jne 0x852c
callq 0x3360
movl %eax, %r15d
callq 0x3030
cmpl %eax, %r15d
jne 0x852c
leaq 0x502e(%rip), %rdi      # 0xd52a
callq 0x33d0
movq %rax, -0x38(%rbp)
testq %rax, %rax
jne 0x851f
leaq 0x5020(%rip), %rdi      # 0xd531
callq 0x33d0
movq %rax, -0x38(%rbp)
testq %rax, %rax
je 0x852c
leaq -0x30(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x8668
movq -0x28(%rbp), %rax
cmpq -0x30(%rbp), %rax
jne 0x8546
leaq 0x4ff8(%rip), %rsi      # 0xd535
leaq -0x30(%rbp), %rdi
callq 0x86bc
leaq 0x4fed(%rip), %rsi      # 0xd53a
leaq -0x30(%rbp), %rdi
callq 0x8e9c
pushq $0x3f
popq %rdi
callq 0x35b0
movl %eax, %r15d
leaq -0x30(%rbp), %rdi
callq 0x9167
movq %rax, %rdi
callq 0x3110
movl %eax, 0x8(%r14)
cmpl $-0x1, %eax
je 0x85ca
movq (%r14), %rax
movq %r14, %rdi
callq *0x18(%rax)
testb %al, %al
je 0x85c0
leaq -0x30(%rbp), %rdi
callq 0x9167
movq (%r14), %rcx
movq %r14, %rdi
movq %rax, %rsi
movl %ebx, %edx
callq *0x10(%rcx)
testb %al, %al
je 0x85c0
movl %r15d, %edi
callq 0x35b0
leaq -0x30(%rbp), %rdi
callq 0x9167
movq %rax, %rdi
callq 0x3190
movb $0x1, %bl
jmp 0x863a
movl %r15d, %edi
callq 0x35b0
jmp 0x8638
movl %r15d, %edi
callq 0x35b0
testb %bl, %bl
js 0x8638
movq 0xba13(%rip), %rdi      # 0x13ff0
leaq 0x4f61(%rip), %rsi      # 0xd545
callq 0x3310
movq %rax, %rbx
leaq -0x30(%rbp), %rsi
movq %rax, %rdi
callq 0x921c
leaq 0x4ddd(%rip), %rsi      # 0xd3dc
movq %rbx, %rdi
callq 0x3310
movq %rax, %rbx
callq 0x3060
movl (%rax), %edi
callq 0x3130
movq %rbx, %rdi
movq %rax, %rsi
callq 0x3310
leaq 0x4f6e(%rip), %rsi      # 0xd596
movq %rax, %rdi
callq 0x3310
movq %rax, %rdi
callq 0x31a0
xorl %ebx, %ebx
movq -0x30(%rbp), %rdi
callq 0x32e0
movl %ebx, %eax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x8654
jmp 0x8654
movq %rax, %rbx
movq -0x30(%rbp), %rdi
callq 0x32e0
movq %rbx, %rdi
callq 0x3590