// File: /workspace/github_cpp_makefile_star2_O1/auton1[P]viterbi/header.cpp
// Function: header::parse_meta(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, unsigned int&)
void header::parse_meta(const string &line, unsigned int &line_index)
{
	lines.push_back(line);
	if (line.find("##fileformat=")!=string::npos)
	{
		has_file_format = true;
		size_t found = line.find_first_of("=");
		string version = line.substr(found+1);
		if ((version != "VCFv4.0") && (version != "VCFv4.1") && (version != "VCFv4.2"))
			LOG.error("VCF version must be v4.0, v4.1 or v4.2:\nYou are using version " + version);
	}
	else if (line.find("##INFO=")!=string::npos)
	{	// Found an INFO descriptor
		line_index += add_INFO_descriptor(line.substr(8, line.size()-8), line_index);
	}
	else if (line.find("##FILTER=")!=string::npos)
	{	// Found a FILTER descriptor
		line_index += add_FILTER_descriptor(line.substr(10, line.size()-8), line_index);
	}
	else if (line.find("##FORMAT=")!=string::npos)
	{	// Found a genotype filter descriptor
		line_index += add_FORMAT_descriptor(line.substr(10, line.size()-8), line_index);
	}
	else if (line.find("##contig=")!=string::npos)
	{	// Found a contig descriptor
		add_CONTIG_descriptor(line.substr(10, line.size()-8), contig_index);
		contig_index++;
		has_contigs = true;
	}
	else
	{
		Field_description I;
		size_t found = line.find_first_of("=");
		I.Field = line.substr(0,found);
		I.Other = line.substr(found+1);
		parsed_lines.push_back(I);
	}
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x198, %rsp            # imm = 0x198
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
addq $0x28, %rdi
callq 0x13080
leaq 0x25faa(%rip), %rsi     # 0x3998d
movl $0xd, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13ac2
movb $0x1, 0x7(%rbx)
leaq 0x2824e(%rip), %rsi     # 0x3bc55
movl $0x1, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x5670
leaq 0x1(%rax), %rdx
leaq 0x48(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
movq $-0x1, %rcx
callq 0x5480
leaq 0x25f63(%rip), %rsi     # 0x3999b
movq %rbx, %rdi
callq 0x50e0
testl %eax, %eax
je 0x13ba1
leaq 0x25f54(%rip), %rsi     # 0x399a3
leaq 0x48(%rsp), %rdi
callq 0x50e0
testl %eax, %eax
je 0x13ba1
leaq 0x25f43(%rip), %rsi     # 0x399ab
leaq 0x48(%rsp), %rdi
callq 0x50e0
testl %eax, %eax
je 0x13ba1
leaq 0x25f32(%rip), %rsi     # 0x399b3
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0xb7dd
leaq 0x36a11(%rip), %rdi     # 0x4a4a8
leaq 0x28(%rsp), %rsi
movl $0x1, %edx
callq 0x3721e
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13ba1
callq 0x5410
jmp 0x13ba1
leaq 0x25f29(%rip), %rsi     # 0x399f2
movl $0x7, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13b0e
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
movl $0x8, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x5480
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x13d2c
jmp 0x13b9e
leaq 0x25ee5(%rip), %rsi     # 0x399fa
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13b57
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
movl $0xa, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x5480
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x14a0a
jmp 0x13b9e
leaq 0x25ea6(%rip), %rsi     # 0x39a04
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13bc3
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
movl $0xa, %edx
movq %r12, %rdi
movq %r14, %rsi
callq 0x5480
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x152f2
addl %eax, (%r15)
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13bb4
callq 0x5410
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x25c37(%rip), %rsi     # 0x39801
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13c24
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r15
movl $0xa, %edx
movq %r15, %rdi
movq %r14, %rsi
callq 0x5480
movl (%rbx), %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x15f92
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13c1c
callq 0x5410
incl (%rbx)
movb $0x1, 0x4(%rbx)
jmp 0x13bb4
leaq 0x48(%rsp), %rdi
callq 0x17532
leaq 0x28020(%rip), %rsi     # 0x3bc55
movl $0x1, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x5670
movq %rax, %r15
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x5480
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x5550
movq (%r12), %rdi
leaq 0x18(%rsp), %r12
cmpq %r12, %rdi
je 0x13c7e
callq 0x5410
incq %r15
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
movq %r15, %rdx
movq $-0x1, %rcx
callq 0x5480
leaq 0x178(%rsp), %rdi
leaq 0x8(%rsp), %r14
movq %r14, %rsi
callq 0x5550
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x13cba
callq 0x5410
addq $0x40, %rbx
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x177c8
leaq 0x48(%rsp), %rdi
callq 0xfb36
jmp 0x13bb4
jmp 0x13cde
jmp 0x13cde
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xfb36
jmp 0x13d23
jmp 0x13d0d
jmp 0x13d0d
jmp 0x13d0d
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13d10
callq 0x5410
jmp 0x13d10
jmp 0x13d0d
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13d23
callq 0x5410
movq %rbx, %rdi
callq 0x57d0
nop