// File: /workspace/github_cpp_makefile_star2_O2/auton1[P]viterbi/header.cpp
// Function: header::add_CONTIG_descriptor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int)
void header::add_CONTIG_descriptor(const string &in, int index)
{
	size_t found_end=in.find_last_of(">");
	string details = in.substr(0, found_end);

	vector<string> tokens;
	tokenize(details, ',', tokens);
	Field_description I;
	I.Field = "contig";
	bool id_found = false;
	vector<string> entry;

	for (unsigned int ui=0; ui<tokens.size(); ui++)
	{
		tokenize(tokens[ui], '=', entry);
		if (entry[0] == "ID")
		{
			I.ID = entry[1];
			id_found = true;
		}
		else if (entry[0] == "length") I.Length = entry[1];
		else if (entry[0] == "assembly") I.Assembly = entry[1];
		else
		{
			if (I.Other != "")
				I.Other += ",";
			I.Other += tokens[ui];
		}
	}
	if (id_found == false)
		LOG.warning("CONTIG declaration found without ID: "+ in + "\n");

	parsed_lines.push_back(I);
	CONTIG_map[index] = I;
	CONTIG_reverse_map[I.ID] = index;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x208, %rsp            # imm = 0x208
movq %rsi, %r15
movq %rdi, %r14
movl %edx, 0xc(%rsp)
leaq 0x1bbc4(%rip), %rsi     # 0x2daf8
pushq $-0x1
popq %rdx
movq %r15, %rdi
callq 0x5450
leaq 0x98(%rsp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
xorl %edx, %edx
movq %rax, %rcx
callq 0x54c0
xorps %xmm0, %xmm0
leaq 0x30(%rsp), %rdx
movaps %xmm0, (%rdx)
andq $0x0, 0x10(%rdx)
pushq $0x2c
popq %rsi
movq %rbx, %rdi
callq 0x126cc
leaq 0xb8(%rsp), %rdi
callq 0x12f22
movq %r15, 0x48(%rsp)
movq %r14, 0x50(%rsp)
leaq 0x1be55(%rip), %rsi     # 0x2dde5
leaq 0xb8(%rsp), %rdi
callq 0x58b0
xorps %xmm0, %xmm0
leaq 0x10(%rsp), %r12
movaps %xmm0, (%r12)
andq $0x0, 0x10(%r12)
xorl %r14d, %r14d
pushq $0x3d
popq %rbp
leaq 0x1b9fd(%rip), %r15     # 0x2d9ba
xorl %ebx, %ebx
movl %ebx, %ebx
movq 0x30(%rsp), %rdi
movq 0x38(%rsp), %rax
subq %rdi, %rax
sarq $0x5, %rax
cmpq %rbx, %rax
jbe 0x120b3
movq %rbx, %r13
shlq $0x5, %r13
addq %r13, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x126cc
movq 0x10(%rsp), %rdi
movq %r15, %rsi
callq 0x96f3
movq 0x10(%rsp), %rsi
testb %al, %al
je 0x1201e
addq $0x20, %rsi
movb $0x1, %r14b
leaq 0xd8(%rsp), %rdi
callq 0x5210
jmp 0x120ac
movq %rsi, %rdi
leaq 0x1bdc4(%rip), %rsi     # 0x2ddec
callq 0x96f3
movq 0x10(%rsp), %rsi
testb %al, %al
je 0x12040
leaq 0x168(%rsp), %rdi
jmp 0x12060
movq %rsi, %rdi
leaq 0x1bda9(%rip), %rsi     # 0x2ddf3
callq 0x96f3
testb %al, %al
je 0x1206b
movq 0x10(%rsp), %rsi
leaq 0x188(%rsp), %rdi
addq $0x20, %rsi
callq 0x5210
jmp 0x120ac
leaq 0x1e8(%rsp), %rdi
leaq 0x1cdbd(%rip), %rsi     # 0x2ee37
callq 0x12f17
testb %al, %al
je 0x12097
leaq 0x1e8(%rsp), %rdi
leaq 0x1bb3a(%rip), %rsi     # 0x2dbcc
callq 0x58a0
addq 0x30(%rsp), %r13
leaq 0x1e8(%rsp), %rdi
movq %r13, %rsi
callq 0x58d0
incl %ebx
jmp 0x11fbf
testb $0x1, %r14b
movq 0x50(%rsp), %r14
jne 0x1210f
leaq 0x1bd37(%rip), %rsi     # 0x2ddfc
leaq 0x58(%rsp), %rdi
movq 0x48(%rsp), %rdx
callq 0x967d
leaq 0x1b030(%rip), %rdx     # 0x2d10b
leaq 0x78(%rsp), %rdi
leaq 0x58(%rsp), %rsi
callq 0x98b6
leaq 0x2f3df(%rip), %rdi     # 0x414d0
leaq 0x78(%rsp), %rsi
callq 0x2c0bc
leaq 0x78(%rsp), %rdi
callq 0x5908
leaq 0x58(%rsp), %rdi
callq 0x5908
leaq 0x40(%r14), %rdi
leaq 0xb8(%rsp), %rsi
callq 0x130ee
leaq 0xf0(%r14), %rdi
leaq 0xc(%rsp), %rsi
callq 0x1311e
leaq 0xb8(%rsp), %rsi
movq %rax, %rdi
callq 0xd3f2
movl 0xc(%rsp), %ebx
addq $0x120, %r14            # imm = 0x120
movq %r14, %rdi
leaq 0xd8(%rsp), %rsi
callq 0x1316c
movl %ebx, (%rax)
leaq 0x10(%rsp), %rdi
callq 0x9f1c
leaq 0xb8(%rsp), %rdi
callq 0xd306
leaq 0x30(%rsp), %rdi
callq 0x9f1c
leaq 0x98(%rsp), %rdi
callq 0x5908
addq $0x208, %rsp            # imm = 0x208
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
leaq 0x78(%rsp), %rdi
callq 0x5908
jmp 0x121b0
movq %rax, %rbx
leaq 0x58(%rsp), %rdi
callq 0x5908
jmp 0x121cf
jmp 0x121cc
movq %rax, %rbx
jmp 0x121d9
jmp 0x121c5
movq %rax, %rbx
jmp 0x121e6
jmp 0x121cc
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x9f1c
leaq 0xb8(%rsp), %rdi
callq 0xd306
leaq 0x30(%rsp), %rdi
callq 0x9f1c
leaq 0x98(%rsp), %rdi
callq 0x5908
movq %rbx, %rdi
callq 0x5800
nop