// File: BenLangmead[P]bowtie/sam.cpp
// Function: SAMHitSink::appendHeaders(OutFileBuf&, unsigned long, EList<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, 128> const&, bool, unsigned int const*, bool, bool, char const*, char const*)
void SAMHitSink::appendHeaders(
	OutFileBuf& os,
	size_t numRefs,
	const EList<string>& refnames,
	bool nosq,
	const TIndexOffU* plen,
	bool fullRef,
	bool noQnameTrunc,
	const char *cmdline,
	const char *rgline)
{
	BTString o;
	o << "@HD\tVN:1.0\tSO:unsorted\n";
	if(!nosq) {
		for(size_t i = 0; i < numRefs; i++) {
			// RNAME
			o << "@SQ\tSN:";
			if(i < refnames.size()) {
				printUptoWs(o, refnames[i], !fullRef);
			} else {
				o << i;
			}
			o << "\tLN:" << (plen[i]) << '\n';
		}
	}
	if(rgline != NULL) {
		o << "@RG\t" << rgline << '\n';
	}
	o << "@PG\tID:Bowtie\tVN:" << BOWTIE_VERSION << "\tCL:\"" << cmdline << "\"\n";
	os.writeString(o);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movl %r8d, %eax
movq %rcx, -0x98(%rbp)
movq %rdx, -0x90(%rbp)
movq %rsi, %r8
movq -0x98(%rbp), %rsi
movq %rdi, %r10
movq -0x90(%rbp), %rdi
movb %al, %dl
movq 0x28(%rbp), %rax
movq 0x20(%rbp), %rax
movb 0x18(%rbp), %al
movb 0x10(%rbp), %cl
movq %r10, -0x8(%rbp)
movq %r8, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movq %rsi, -0x20(%rbp)
andb $0x1, %dl
movb %dl, -0x21(%rbp)
movq %r9, -0x30(%rbp)
andb $0x1, %cl
movb %cl, -0x31(%rbp)
andb $0x1, %al
movb %al, -0x32(%rbp)
leaq -0x68(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x2e460
movq -0x88(%rbp), %rdi
leaq 0x9aee(%rip), %rsi      # 0x8e821
callq 0x86190
jmp 0x84d3a
testb $0x1, -0x21(%rbp)
jne 0x84e5e
movq $0x0, -0x80(%rbp)
movq -0x80(%rbp), %rax
cmpq -0x18(%rbp), %rax
jae 0x84e5c
leaq 0x9ad8(%rip), %rsi      # 0x8e839
leaq -0x68(%rbp), %rdi
callq 0x86190
jmp 0x84d6c
movq -0x80(%rbp), %rax
movq %rax, -0xa8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x26400
movq %rax, -0xa0(%rbp)
jmp 0x84d89
movq -0xa8(%rbp), %rax
movq -0xa0(%rbp), %rcx
cmpq %rcx, %rax
jae 0x84deb
movq -0x20(%rbp), %rdi
movq -0x80(%rbp), %rsi
callq 0x28860
movq %rax, -0xb0(%rbp)
jmp 0x84db2
movq -0xb0(%rbp), %rsi
movb -0x31(%rbp), %al
notb %al
movzbl %al, %edx
andl $0x1, %edx
leaq -0x68(%rbp), %rdi
callq 0x861c0
jmp 0x84dcf
jmp 0x84dfc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x70(%rbp)
movl %eax, -0x74(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x2e4a0
jmp 0x84f4c
leaq -0x68(%rbp), %rdi
leaq -0x80(%rbp), %rsi
callq 0x86280
jmp 0x84dfa
jmp 0x84dfc
leaq 0x9a3e(%rip), %rsi      # 0x8e841
leaq -0x68(%rbp), %rdi
callq 0x86190
movq %rax, -0xb8(%rbp)
jmp 0x84e15
movq -0xb8(%rbp), %rdi
movq -0x30(%rbp), %rax
movq -0x80(%rbp), %rcx
leaq (%rax,%rcx,4), %rsi
callq 0x86310
movq %rax, -0xc0(%rbp)
jmp 0x84e36
movq -0xc0(%rbp), %rdi
movl $0xa, %esi
callq 0x862e0
jmp 0x84e49
jmp 0x84e4b
movq -0x80(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x80(%rbp)
jmp 0x84d4c
jmp 0x84e5e
cmpq $0x0, 0x28(%rbp)
je 0x84eac
leaq 0x99da(%rip), %rsi      # 0x8e846
leaq -0x68(%rbp), %rdi
callq 0x86190
movq %rax, -0xc8(%rbp)
jmp 0x84e7e
movq -0xc8(%rbp), %rdi
movq 0x28(%rbp), %rsi
callq 0x86190
movq %rax, -0xd0(%rbp)
jmp 0x84e97
movq -0xd0(%rbp), %rdi
movl $0xa, %esi
callq 0x862e0
jmp 0x84eaa
jmp 0x84eac
leaq 0x9998(%rip), %rsi      # 0x8e84b
leaq -0x68(%rbp), %rdi
callq 0x86190
movq %rax, -0xd8(%rbp)
jmp 0x84ec5
movq -0xd8(%rbp), %rdi
leaq 0x5072(%rip), %rsi      # 0x89f45
callq 0x86190
movq %rax, -0xe0(%rbp)
jmp 0x84ee1
movq -0xe0(%rbp), %rdi
leaq 0x996e(%rip), %rsi      # 0x8e85d
callq 0x86190
movq %rax, -0xe8(%rbp)
jmp 0x84efd
movq -0xe8(%rbp), %rdi
movq 0x20(%rbp), %rsi
callq 0x86190
movq %rax, -0xf0(%rbp)
jmp 0x84f16
movq -0xf0(%rbp), %rdi
leaq 0x993f(%rip), %rsi      # 0x8e863
callq 0x86190
jmp 0x84f2b
movq -0x10(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x2ed20
jmp 0x84f3a
leaq -0x68(%rbp), %rdi
callq 0x2e4a0
addq $0xf0, %rsp
popq %rbp
retq
movq -0x70(%rbp), %rdi
callq 0xab60
nopw %cs:(%rax,%rax)