// File: /workspace/github_cpp_makefile_star2_O2/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 0xfda2
leaq 0x1d340(%rip), %rsi     # 0x2d8cd
movq %r14, %rdi
xorl %edx, %edx
callq 0x58e0
cmpq $-0x1, %rax
je 0x1064f
movb $0x1, 0x7(%rbx)
leaq 0x1f5d9(%rip), %rsi     # 0x2fb85
movq %r14, %rdi
xorl %edx, %edx
callq 0x51f0
leaq 0x1(%rax), %rdx
leaq 0x48(%rsp), %rbx
pushq $-0x1
popq %rcx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x54c0
leaq 0x1d307(%rip), %rsi     # 0x2d8db
movq %rbx, %rdi
callq 0x12f17
testb %al, %al
je 0x10719
leaq 0x1d2f8(%rip), %rsi     # 0x2d8e3
leaq 0x48(%rsp), %rdi
callq 0x12f17
testb %al, %al
je 0x10719
leaq 0x1d2e7(%rip), %rsi     # 0x2d8eb
leaq 0x48(%rsp), %rdi
callq 0x12f17
testb %al, %al
je 0x10719
leaq 0x1d2d6(%rip), %rsi     # 0x2d8f3
leaq 0x28(%rsp), %rdi
leaq 0x48(%rsp), %rdx
callq 0x967d
leaq 0x30e9d(%rip), %rdi     # 0x414d0
leaq 0x28(%rsp), %rsi
pushq $0x1
popq %rdx
callq 0x2bf18
leaq 0x28(%rsp), %rdi
callq 0x5908
jmp 0x10719
leaq 0x1d2dc(%rip), %rsi     # 0x2d932
movq %r14, %rdi
xorl %edx, %edx
callq 0x58e0
cmpq $-0x1, %rax
je 0x10694
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
pushq $0x8
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x54c0
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x10860
jmp 0x10716
leaq 0x1d29f(%rip), %rsi     # 0x2d93a
movq %r14, %rdi
xorl %edx, %edx
callq 0x58e0
cmpq $-0x1, %rax
je 0x106d6
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
pushq $0xa
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x54c0
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x110f6
jmp 0x10716
leaq 0x1d267(%rip), %rsi     # 0x2d944
movq %r14, %rdi
xorl %edx, %edx
callq 0x58e0
cmpq $-0x1, %rax
je 0x10732
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r12
pushq $0xa
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
callq 0x54c0
movl (%r15), %edx
movq %rbx, %rdi
movq %r12, %rsi
callq 0x116a6
addl %eax, (%r15)
leaq 0x48(%rsp), %rdi
callq 0x5908
addq $0x198, %rsp            # imm = 0x198
popq %rbx
popq %r12
popq %r14
popq %r15
retq
leaq 0x1d008(%rip), %rsi     # 0x2d741
movq %r14, %rdi
xorl %edx, %edx
callq 0x58e0
cmpq $-0x1, %rax
je 0x10783
movq 0x8(%r14), %rcx
addq $-0x8, %rcx
leaq 0x48(%rsp), %r15
pushq $0xa
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x54c0
movl (%rbx), %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x11f12
leaq 0x48(%rsp), %rdi
callq 0x5908
incl (%rbx)
movb $0x1, 0x4(%rbx)
jmp 0x10723
leaq 0x48(%rsp), %rdi
callq 0x12f22
leaq 0x1f3f1(%rip), %rsi     # 0x2fb85
movq %r14, %rdi
xorl %edx, %edx
callq 0x51f0
movq %rax, %r15
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x54c0
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %r12
movq %r12, %rsi
callq 0x5580
movq %r12, %rdi
callq 0x5908
incq %r15
leaq 0x8(%rsp), %rdi
pushq $-0x1
popq %rcx
movq %r14, %rsi
movq %r15, %rdx
callq 0x54c0
leaq 0x178(%rsp), %rdi
leaq 0x8(%rsp), %r14
movq %r14, %rsi
callq 0x5580
movq %r14, %rdi
callq 0x5908
addq $0x40, %rbx
leaq 0x48(%rsp), %rsi
movq %rbx, %rdi
callq 0x130ee
leaq 0x48(%rsp), %rdi
callq 0xd306
jmp 0x10723
jmp 0x10824
jmp 0x10824
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0xd306
jmp 0x10857
jmp 0x1084a
jmp 0x1084a
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x5908
jmp 0x1084d
jmp 0x1084a
jmp 0x1084a
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x5908
movq %rbx, %rdi
callq 0x5800
nop