// File: /workspace/github_cpp_makefile_star2_O1/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 0x29979(%rip), %rsi     # 0x3aeff
movq %r15, %rdi
callq 0x50e0
testl %eax, %eax
jne 0x115e3
leaq 0xd0(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x281c6(%rip), %rsi     # 0x3976c
leaq 0x28235(%rip), %rdx     # 0x397e2
leaq 0xc0(%rsp), %r14
movq %r14, %rdi
callq 0xc868
leaq 0x38ee4(%rip), %rdi     # 0x4a4a8
movq %r14, %rsi
movl $0x1, %edx
callq 0x3721e
movq 0xc0(%rsp), %rdi
cmpq %r12, %rdi
je 0x115e3
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 0x11652
leaq 0x281d0(%rip), %rsi     # 0x397e3
leaq 0xa0(%rsp), %rdi
movq %r15, %rdx
callq 0xb7dd
leaq 0x38e7e(%rip), %rdi     # 0x4a4a8
leaq 0xa0(%rsp), %rsi
movl $0x1, %edx
callq 0x3721e
leaq 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11652
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 0x1300a
leaq 0x60(%rsp), %r12
leaq 0x28182(%rip), %r13     # 0x39801
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 0x11728
movl $0x9, %ecx
movq %r12, %rdi
movq %r13, %rsi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
jne 0x11715
leaq 0x10(%rsp), %rax
movq %rax, (%rsp)
movq %rbp, %rdi
leaq 0x28129(%rip), %rsi     # 0x3980b
leaq 0x28155(%rip), %rdx     # 0x3983e
callq 0xc868
leaq 0x38db3(%rip), %rdi     # 0x4a4a8
movq %rbp, %rsi
movl $0x1, %edx
callq 0x3721e
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x11715
callq 0x5410
movq %rbx, %rdi
movq %r12, %rsi
callq 0x13080
incl %r15d
jmp 0x11682
leaq 0xe0(%rsp), %rdi
callq 0x50a0
leaq 0x80(%rsp), %rdi
movl %r15d, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x17284
leaq 0x280ee(%rip), %rcx     # 0x3983f
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 0x1178f
movq %rdx, 0x20(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x30(%rsp)
jmp 0x11796
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 0x28091(%rip), %rsi     # 0x3984a
callq 0x5870
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x117e5
movq %rdx, 0x40(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x50(%rsp)
jmp 0x117ec
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 0x38c99(%rip), %rdi     # 0x4a4a8
callq 0x371c8
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x11823
callq 0x5410
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x11832
callq 0x5410
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x11848
callq 0x5410
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x1185c
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 0x1192a
callq 0x5410
jmp 0x1192a
movq %rax, %rbx
leaq 0xb0(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x11913
movq %rax, %rbx
jmp 0x1191d
movq %rax, %rbx
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0x118c6
callq 0x5410
jmp 0x118c6
movq %rax, %rbx
movq 0x20(%rsp), %rdi
cmpq %r14, %rdi
je 0x118da
callq 0x5410
jmp 0x118da
movq %rax, %rbx
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
jmp 0x118fa
jmp 0x11906
jmp 0x11906
jmp 0x11906
movq %rax, %rbx
movq (%rsp), %rdi
leaq 0x10(%rsp), %rax
cmpq %rax, %rdi
je 0x11909
callq 0x5410
jmp 0x11909
movq %rax, %rbx
movq 0x60(%rsp), %rdi
leaq 0x70(%rsp), %rax
cmpq %rax, %rdi
je 0x1191d
callq 0x5410
leaq 0xe0(%rsp), %rdi
callq 0x58a0
movq %rbx, %rdi
callq 0x57d0