// File: /workspace/github_cpp_makefile_star2_O1/BenLangmead[P]bowtie/./hit.h
// Function: HitSink::openOf(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::ofstream* openOf(const std::string& name,
	                      int mateType,
	                      const std::string& suffix)
	{
		std::string s = name;
		size_t dotoff = name.find_last_of(".");
		if(mateType == 1) {
			if(dotoff == string::npos) {
				s += "_1"; s += suffix;
			} else {
				s = name.substr(0, dotoff) + "_1" + s.substr(dotoff);
			}
		} else if(mateType == 2) {
			if(dotoff == string::npos) {
				s += "_2"; s += suffix;
			} else {
				s = name.substr(0, dotoff) + "_2" + s.substr(dotoff);
			}
		} else if(mateType != 0) {
			cerr << "Bad mate type " << mateType << endl; throw 1;
		}
		std::ofstream* tmp = new ofstream(s.c_str(), ios::out);
		if(tmp->fail()) {
			if(mateType == 0) {
				cerr << "Could not open single-ended aligned/unaligned-read file for writing: " << name << endl;
			} else {
				cerr << "Could not open paired-end aligned/unaligned-read file for writing: " << name << endl;
			}
			throw 1;
		}
		return tmp;
	}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0xa0, %rsp
movq %rcx, %r15
movl %edx, %ebp
movq %rsi, %rbx
leaq 0x70(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rsi), %rsi
movq 0x8(%rbx), %rdx
addq %rsi, %rdx
leaq 0x60(%rsp), %rdi
callq 0x20aae
leaq 0x308a0(%rip), %rsi     # 0x5758e
movl $0x1, %ecx
movq %rbx, %rdi
movq $-0x1, %rdx
callq 0x9a30
testl %ebp, %ebp
je 0x26ff8
movq %rax, %r14
cmpl $0x2, %ebp
je 0x26d7b
cmpl $0x1, %ebp
jne 0x270bb
cmpq $-0x1, %r14
je 0x26dd9
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x94e0
leaq 0x2fa1c(%rip), %rsi     # 0x5675d
leaq 0x80(%rsp), %rdi
callq 0x99f0
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x26e8e
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x26e95
cmpq $-0x1, %r14
je 0x26dd0
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x94e0
leaq 0x2f9c3(%rip), %rsi     # 0x56760
leaq 0x80(%rsp), %rdi
callq 0x99f0
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x26e00
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x26e07
leaq 0x2f989(%rip), %rsi     # 0x56760
jmp 0x26de0
leaq 0x2f97d(%rip), %rsi     # 0x5675d
leaq 0x60(%rsp), %rdi
callq 0x99f0
movq (%r15), %rsi
movq 0x8(%r15), %rdx
leaq 0x60(%rsp), %rdi
callq 0x9170
jmp 0x26ff8
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movq %r14, %rdx
movq $-0x1, %rcx
callq 0x94e0
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0x48(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x26e59
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x26e7c
leaq 0x50(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x26e73
movq 0x50(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x26f15
movq 0x40(%rsp), %rsi
movq %rsp, %rdi
callq 0x9170
jmp 0x26f33
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x40(%rsp), %rdi
leaq 0x60(%rsp), %rsi
movq %r14, %rdx
movq $-0x1, %rcx
callq 0x94e0
movq (%rsp), %rcx
movq 0x8(%rsp), %r8
movq 0x48(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %esi
cmpq %r15, %rcx
je 0x26ee7
movq 0x10(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x26f06
leaq 0x50(%rsp), %rdi
movl $0xf, %esi
cmpq %rdi, -0x10(%rdi)
je 0x26f01
movq 0x50(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x26f25
movq 0x40(%rsp), %rsi
movq %rsp, %rdi
callq 0x9170
jmp 0x26f33
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9540
jmp 0x26f33
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9540
leaq 0x30(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x26f57
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x26f5d
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x28(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x60(%rsp), %rdi
leaq 0x20(%rsp), %r14
movq %r14, %rsi
callq 0x95b0
movq (%r14), %rdi
leaq 0x30(%rsp), %rax
cmpq %rax, %rdi
je 0x26fa6
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x94c0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26fc1
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x94c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26fd7
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x94c0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26ff8
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x94c0
movl $0x200, %edi            # imm = 0x200
callq 0x94b0
movq %rax, %r14
movq 0x60(%rsp), %rsi
movq %rax, %rdi
movl $0x10, %edx
callq 0x9510
movq (%r14), %rax
movq -0x18(%rax), %rax
testb $0x5, 0x20(%r14,%rax)
jne 0x27050
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x2703d
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x94c0
movq %r14, %rax
addq $0xa0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
xorl %eax, %eax
testl %ebp, %ebp
sete %al
leaq 0x2f714(%rip), %rcx     # 0x56772
leaq 0x2f753(%rip), %rsi     # 0x567b8
cmoveq %rcx, %rsi
leaq 0x43(,%rax,2), %rdx
movq 0x43f78(%rip), %rdi     # 0x6aff0
callq 0x9560
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x43f65(%rip), %rdi     # 0x6aff0
callq 0x9560
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x43e89(%rip), %rsi     # 0x6af38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
jmp 0x2710a
movq 0x43f2e(%rip), %rdi     # 0x6aff0
leaq 0x2f69a(%rip), %rsi     # 0x56763
movl $0xe, %edx
callq 0x9560
movq 0x43f16(%rip), %rdi     # 0x6aff0
movl %ebp, %esi
callq 0x9910
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x43e38(%rip), %rsi     # 0x6af38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
jmp 0x2710c
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27131
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x94c0
jmp 0x27131
jmp 0x2712e
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x2714e
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x94c0
jmp 0x2714e
jmp 0x2714b
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x27187
movq 0x90(%rsp), %rsi
incq %rsi
jmp 0x2717d
jmp 0x27184
jmp 0x27184
jmp 0x27184
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x94c0
jmp 0x27187
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x2719e
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x94c0
movq %rbx, %rdi
callq 0x9930