// File: /workspace/github_cpp_makefile_star2_O3/auton1[P]viterbi/variant_file.cpp
// Function: variant_file::get_contigs(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::vector<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>>>>&)
void variant_file::get_contigs(const string &contigs_file, vector<string> &contig_vector)
{
	if (contigs_file == "")
		LOG.error("Contig declarations in header are necessary for BCF conversion. Use --contigs <filename> to add contigs to the header.");

	ifstream contigs(contigs_file.c_str());
	if (!contigs.is_open())
		LOG.error("Could not open contigs file: " + contigs_file);

	string line;
	int contig_lines = 0;
	contig_vector.resize(0);

	while (getline(contigs, line))
	{
		if (line.find("##contig=")==string::npos)
			LOG.error("Contigs file must contain only contig header lines.");

		contig_vector.push_back(line);
		contig_lines++;
	}

	contigs.close();
	LOG.printLOG("Including "+header::int2str(contig_lines)+" header lines from the contig file.\n");
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2e8, %rsp            # imm = 0x2E8
movq %rdx, %rbx
movq %rsi, %r15
leaq 0x28907(%rip), %rsi     # 0x39ed7
movq %r15, %rdi
callq 0x50e0
testl %eax, %eax
jne 0x1162d
leaq 0xd0(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x2717c(%rip), %rsi     # 0x3876c
leaq 0x271eb(%rip), %rdx     # 0x387e2
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0xc85e
leaq 0x37e9a(%rip), %rdi     # 0x494a8
movq %r14, %rsi
movl $0x1, %edx
callq 0x36ec8
movq 0xc0(%rsp), %rdi
cmpq %r12, %rdi
je 0x1162d
callq 0x5410
movq (%r15), %rsi
leaq 0xe0(%rsp), %r14
movq %r14, %rdi
movl $0x8, %edx
callq 0x5820
leaq 0x158(%rsp), %rdi
callq 0x50b0
testb %al, %al
jne 0x1169c
leaq 0x27186(%rip), %rsi     # 0x387e3
leaq 0xa0(%rsp), %rdi
movq %r15, %rdx
callq 0xb777
leaq 0x37e34(%rip), %rdi     # 0x494a8
leaq 0xa0(%rsp), %rsi
movl $0x1, %edx
callq 0x36ec8
leaq 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x1169c
callq 0x5410
leaq 0x70(%rsp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
xorl %r15d, %r15d
movq %rbx, %rdi
xorl %esi, %esi
callq 0x1300e
leaq 0x60(%rsp), %r12
leaq 0x27138(%rip), %r13     # 0x38801
movq %rsp, %rbp
movq 0xe0(%rsp), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x5440
movsbl %al, %edx
movq %r14, %rdi
movq %r12, %rsi
callq 0x5830
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x11772
movl $0x9, %ecx
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
jne 0x1175f
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x270df(%rip), %rsi     # 0x3880b
leaq 0x2710b(%rip), %rdx     # 0x3883e
callq 0xc85e
leaq 0x37d69(%rip), %rdi     # 0x494a8
movq %rbp, %rsi
movl $0x1, %edx
callq 0x36ec8
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x1175f
callq 0x5410
movq %rbx, %rdi
movq %r12, %rsi
callq 0x13084
incl %r15d
jmp 0x116cc
leaq 0xe0(%rsp), %rdi
callq 0x50a0
leaq 0x80(%rsp), %rdi
movl %r15d, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x1720e
leaq 0x270a4(%rip), %rcx     # 0x3883f
leaq 0x80(%rsp), %rdi
movl $0xa, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x54d0
leaq 0x30(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x117d9
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x117e0
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x20(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x27047(%rip), %rsi     # 0x3884a
callq 0x5870
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x1182f
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x11836
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
leaq 0x40(%rsp), %rsi
movq %rdx, 0x8(%rsi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x37c4f(%rip), %rdi     # 0x494a8
callq 0x36e72
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x1186d
callq 0x5410
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x1187c
callq 0x5410
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11892
callq 0x5410
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x118a6
callq 0x5410
leaq 0xe0(%rsp), %rdi
callq 0x58a0
addq $0x2e8, %rsp            # imm = 0x2E8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
movq 0xc0(%rsp), %rdi
cmpq %r12, %rdi
je 0x11974
callq 0x5410
jmp 0x11974
movq %rax, %rbx
leaq 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x1195d
movq %rax, %rbx
jmp 0x11967
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x11910
callq 0x5410
jmp 0x11910
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x11924
callq 0x5410
jmp 0x11924
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x11944
jmp 0x11950
jmp 0x11950
jmp 0x11950
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x11953
callq 0x5410
jmp 0x11953
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x11967
callq 0x5410
leaq 0xe0(%rsp), %rdi
callq 0x58a0
movq %rbx, %rdi
callq 0x57d0