// File: /workspace/github_cpp_makefile_star2_O3/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 0x13084
leaq 0x24fd6(%rip), %rsi     # 0x3898d
movl $0xd, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13a96
movb $0x1, 0x7(%rbx)
leaq 0x2724a(%rip), %rsi     # 0x3ac25
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 0x24f8f(%rip), %rsi     # 0x3899b
movq %rbx, %rdi
callq 0x50e0
testl %eax, %eax
je 0x13b75
leaq 0x24f80(%rip), %rsi     # 0x389a3
leaq 0x48(%rsp), %rdi
callq 0x50e0
testl %eax, %eax
je 0x13b75
leaq 0x24f6f(%rip), %rsi     # 0x389ab
leaq 0x48(%rsp), %rdi
callq 0x50e0
testl %eax, %eax
je 0x13b75
leaq 0x24f5e(%rip), %rsi     # 0x389b3
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0xb777
leaq 0x35a3d(%rip), %rdi     # 0x494a8
leaq 0x28(%rsp), %rsi
movl $0x1, %edx
callq 0x36ec8
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13b75
callq 0x5410
jmp 0x13b75
leaq 0x24f55(%rip), %rsi     # 0x389f2
movl $0x7, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13ae2
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 0x13d00
jmp 0x13b72
leaq 0x24f11(%rip), %rsi     # 0x389fa
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13b2b
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 0x14a06
jmp 0x13b72
leaq 0x24ed2(%rip), %rsi     # 0x38a04
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13b97
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 0x152ee
addl %eax, (%r15)
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13b88
callq 0x5410
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x24c63(%rip), %rsi     # 0x38801
movl $0x9, %ecx
movq %r14, %rdi
xorl %edx, %edx
callq 0x57b0
cmpq $-0x1, %rax
je 0x13bf8
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 0x15fb6
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13bf0
callq 0x5410
incl (%rbx)
movb $0x1, 0x4(%rbx)
jmp 0x13b88
leaq 0x48(%rsp), %rdi
callq 0x174bc
leaq 0x2701c(%rip), %rsi     # 0x3ac25
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 0x13c52
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 0x13c8e
callq 0x5410
addq $0x40, %rbx
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x17752
leaq 0x48(%rsp), %rdi
callq 0xfb7c
jmp 0x13b88
jmp 0x13cb2
jmp 0x13cb2
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xfb7c
jmp 0x13cf7
jmp 0x13ce1
jmp 0x13ce1
jmp 0x13ce1
movq %rax, %rbx
leaq 0x38(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13ce4
callq 0x5410
jmp 0x13ce4
jmp 0x13ce1
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x13cf7
callq 0x5410
movq %rbx, %rdi
callq 0x57d0
nop