// File: /workspace/github_cpp_makefile_star2_O3/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 0x2078a
leaq 0x2fc34(%rip), %rsi     # 0x5666e
movl $0x1, %ecx
movq %rbx, %rdi
movq $-0x1, %rdx
callq 0x9a30
testl %ebp, %ebp
je 0x26d42
movq %rax, %r14
cmpl $0x2, %ebp
je 0x26ac7
cmpl $0x1, %ebp
jne 0x26e05
cmpq $-0x1, %r14
je 0x26b25
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x94e0
leaq 0x2edb0(%rip), %rsi     # 0x5583d
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 0x26bd9
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x26be0
cmpq $-0x1, %r14
je 0x26b1c
leaq 0x80(%rsp), %rdi
movq %rbx, %rsi
xorl %edx, %edx
movq %r14, %rcx
callq 0x94e0
leaq 0x2ed57(%rip), %rsi     # 0x55840
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 0x26b4c
movq %rdx, (%rsp)
movq (%rcx), %rdx
movq %rdx, 0x10(%rsp)
jmp 0x26b53
leaq 0x2ed1d(%rip), %rsi     # 0x55840
jmp 0x26b2c
leaq 0x2ed11(%rip), %rsi     # 0x5583d
leaq 0x60(%rsp), %rdi
callq 0x99f0
movq (%r15), %rsi
movq 0x8(%r15), %rdx
leaq 0x60(%rsp), %rdi
callq 0x9170
jmp 0x26d42
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, %edi
cmpq %r15, %rcx
je 0x26ba5
movq 0x10(%rsp), %rdi
movq 0x40(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x26bcc
leaq 0x50(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x26bc3
movq 0x50(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x26c5f
movq %rsp, %rdi
callq 0x9170
jmp 0x26c7d
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, %edi
cmpq %r15, %rcx
je 0x26c32
movq 0x10(%rsp), %rdi
movq 0x40(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x26c55
leaq 0x50(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x26c50
movq 0x50(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x26c6f
movq %rsp, %rdi
callq 0x9170
jmp 0x26c7d
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9540
jmp 0x26c7d
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 0x26ca1
movq %rsi, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x26ca7
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 0x26cf0
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x94c0
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26d0b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x94c0
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26d21
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x94c0
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26d42
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 0x26d9a
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x26d87
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 0x2eaaa(%rip), %rcx     # 0x55852
leaq 0x2eae9(%rip), %rsi     # 0x55898
cmoveq %rcx, %rsi
leaq 0x43(,%rax,2), %rdx
movq 0x4322e(%rip), %rdi     # 0x69ff0
callq 0x9560
movq (%rbx), %rsi
movq 0x8(%rbx), %rdx
movq 0x4321b(%rip), %rdi     # 0x69ff0
callq 0x9560
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x4313f(%rip), %rsi     # 0x69f38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
jmp 0x26e54
movq 0x431e4(%rip), %rdi     # 0x69ff0
leaq 0x2ea30(%rip), %rsi     # 0x55843
movl $0xe, %edx
callq 0x9560
movq 0x431cc(%rip), %rdi     # 0x69ff0
movl %ebp, %esi
callq 0x9910
movq %rax, %rdi
callq 0x91f0
movl $0x4, %edi
callq 0x9200
movl $0x1, (%rax)
movq 0x430ee(%rip), %rsi     # 0x69f38
movq %rax, %rdi
xorl %edx, %edx
callq 0x98f0
jmp 0x26e56
movq %rax, %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26e7b
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x94c0
jmp 0x26e7b
jmp 0x26e78
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0x26e98
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x94c0
jmp 0x26e98
jmp 0x26e95
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x26ed1
movq 0x90(%rsp), %rsi
incq %rsi
jmp 0x26ec7
jmp 0x26ece
jmp 0x26ece
jmp 0x26ece
movq %rax, %rbx
movl $0x200, %esi            # imm = 0x200
movq %r14, %rdi
callq 0x94c0
jmp 0x26ed1
movq %rax, %rbx
movq 0x60(%rsp), %rdi
cmpq %r12, %rdi
je 0x26ee8
movq 0x70(%rsp), %rsi
incq %rsi
callq 0x94c0
movq %rbx, %rdi
callq 0x9930