// File: /workspace/github_cpp_makefile_star2_O2/auton1[P]viterbi/bcf_entry.cpp
// Function: bcf_entry::print(std::ostream&, std::set<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>>> const&, bool)
void bcf_entry::print(ostream &out, const set<string> &INFO_to_keep, bool keep_all_INFO)
{
	if (fully_parsed == false)
		parse_full_entry();

	out << get_CHROM() << '\t' << POS << '\t' << get_ID() << '\t' << REF << '\t' << get_ALT();

	out << '\t' << header::double2str(QUAL);
	out << '\t' << get_FILTER();
	out << '\t' << get_INFO(INFO_to_keep, keep_all_INFO);

	if (FORMAT.size() > 0)
	{
		string indv_entries;
		out << '\t' << get_FORMAT();

		read_all_entries(indv_entries);
		out << indv_entries;
	}
	out << '\n';	// endl flushes the buffer, which is slow. This (should be) quicker.
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %ecx, %ebp
movq %rdx, %r15
movq %rsi, %rbx
movq %rdi, %r14
cmpb $0x0, 0x3d9(%rdi)
jne 0x15946
movq (%r14), %rax
pushq $0x1
popq %rsi
movq %r14, %rdi
callq *0x18(%rax)
leaq 0x8(%rsp), %r12
movq %r12, %rdi
movq %r14, %rsi
callq 0x1bc58
movq %rbx, %rdi
movq %r12, %rsi
callq 0x5400
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x5530
movl 0x400(%r14), %esi
movq %rax, %rdi
callq 0x57e0
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x5530
movq %rax, %r12
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x1bc88
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x5400
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x5530
leaq 0x428(%r14), %rsi
movq %rax, %rdi
callq 0x5400
pushq $0x9
popq %rsi
movq %rax, %rdi
callq 0x5530
movq %rax, %r12
leaq 0x48(%rsp), %rdi
movq %r14, %rsi
callq 0x1bd18
leaq 0x48(%rsp), %rsi
movq %r12, %rdi
callq 0x5400
leaq 0x48(%rsp), %rdi
callq 0x5908
leaq 0x28(%rsp), %rdi
callq 0x5908
leaq 0x8(%rsp), %rdi
callq 0x5908
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x5530
movq %rax, %r12
movsd 0x460(%r14), %xmm0
leaq 0x8(%rsp), %r13
movsd 0x18559(%rip), %xmm1    # 0x2df80
movq %r13, %rdi
callq 0x12df4
movq %r12, %rdi
movq %r13, %rsi
callq 0x5400
leaq 0x8(%rsp), %rdi
callq 0x5908
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x5530
movq %rax, %r12
leaq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
callq 0x1c1f8
movq %r12, %rdi
movq %r13, %rsi
callq 0x5400
leaq 0x8(%rsp), %rdi
callq 0x5908
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x5530
movq %rax, %r12
movzbl %bpl, %ecx
leaq 0x8(%rsp), %r13
movq %r13, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x1c340
movq %r12, %rdi
movq %r13, %rsi
callq 0x5400
leaq 0x8(%rsp), %rdi
callq 0x5908
movq 0x4a0(%r14), %rax
cmpq 0x498(%r14), %rax
je 0x15b28
leaq 0x18(%rsp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
movb $0x0, (%rax)
pushq $0x9
popq %rsi
movq %rbx, %rdi
callq 0x5530
movq %rax, %r15
leaq 0x28(%rsp), %rdi
movq %r14, %rsi
callq 0x1c876
leaq 0x28(%rsp), %rsi
movq %r15, %rdi
callq 0x5400
leaq 0x28(%rsp), %rdi
callq 0x5908
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
callq 0x1557e
leaq 0x8(%rsp), %rsi
movq %rbx, %rdi
callq 0x5400
leaq 0x8(%rsp), %rdi
callq 0x5908
pushq $0xa
popq %rsi
movq %rbx, %rdi
callq 0x5530
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x15b61
jmp 0x15b70
jmp 0x15b70
jmp 0x15b70
jmp 0x15b70
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x5908
jmp 0x15b64
jmp 0x15b61
jmp 0x15b70
jmp 0x15b70
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x5908
jmp 0x15b73
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x5908
movq %rbx, %rdi
callq 0x5800
nop