// File: auton1[P]viterbi/header.cpp
// Function: header::add_FORMAT_descriptor(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, int)
int header::add_FORMAT_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 = "FORMAT";

	if (tokens.size() < 4)
		LOG.error("Expected at least 4 parts in FORMAT definition: " + in);

	vector<string> entry;
	for (unsigned int ui=0; ui<tokens.size(); ui++)
	{
		tokenize(tokens[ui], '=', entry);
		if (entry[0] == "ID") I.ID = entry[1];
		else if (entry[0] == "Number")
		{
			if ((entry[1] == "A") || (entry[1] == "G"))
				I.N_entries = -1;
			else
				I.N_entries = str2int(entry[1]);
			I.N_entries_str = entry[1];
		}
		else if (entry[0] == "Type")
		{
			if (entry[1] == "Integer") {I.Type_str = "Integer"; I.Type = Integer;}
			else if ((entry[1] == "Float") || (entry[1] == "Numeric")) {I.Type_str = "Float"; I.Type = Float;}
			else if (entry[1] == "Character") {I.Type_str = "Character"; I.Type = Character;}
			else if (entry[1] == "String") {I.Type_str = "String"; I.Type = String;}
			else if (entry[1] == "Flag")
			{
				I.Type = Flag;
				I.Type_str = "Flag";
				if (I.N_entries != 0) LOG.error("Flag Type must have 0 entries: " + in);
			}
			else LOG.error("Unknown Type in FORMAT meta-information: " + in);
		}
		else if (entry[0] == "Description")	I.Description = entry[1];
		else if (entry[0] == "IDX")
		{
			has_idx = true;
			I.idx = str2int(entry[1]);
		}
		else
		{
			if (I.Other != "")
				I.Other += ",";
			I.Other += tokens[ui];
		}
	}

	if (I.ID == "") LOG.error("ID required in FORMAT field description: " + in);
	if (I.N_entries_str == "") LOG.error("Number required in FORMAT field description: " + in);
	if (I.Type_str == "") LOG.error("Type required in FORMAT field description: " + in);
	if (I.Description == "") LOG.error("Description required in FORMAT field description: " + in);
	if ((I.idx == -1) && (has_idx)) LOG.error("Missing index in FORMAT field description: " + in);
	parsed_lines.push_back(I);

	if (I.idx != -1)
	{
		FORMAT_map[I.idx] = I;
		FORMAT_reverse_map[I.ID] = I.idx;
		return 0;
	}
	else
	{
		if ( FILTER_reverse_map.find( I.ID ) != FILTER_reverse_map.end() )
		{
			FORMAT_map[ FILTER_reverse_map[ I.ID ] ] = I;
			FORMAT_reverse_map[I.ID] = FILTER_reverse_map[ I.ID ];
			return 0;
		}
		else if ( INFO_reverse_map.find( I.ID ) != INFO_reverse_map.end() )
		{
			FORMAT_map[ INFO_reverse_map[ I.ID ] ] = I;
			FORMAT_reverse_map[I.ID] = INFO_reverse_map[ I.ID ];
			return 0;
		}
		else if ( FORMAT_reverse_map.find( I.ID ) != FORMAT_reverse_map.end() )
			return 0;
		else
		{
			FORMAT_map[ index ] = I;
			FORMAT_reverse_map[I.ID] = index;
			return 1;
		}
	}
}

// Assembly:
subq $0x408, %rsp            # imm = 0x408
movq %rdi, 0x3f8(%rsp)
movq %rsi, 0x3f0(%rsp)
movl %edx, 0x3ec(%rsp)
movq 0x3f8(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x3f0(%rsp), %rdi
leaq 0x46de9(%rip), %rsi     # 0x74b06
movq $-0x1, %rdx
callq 0x64f0
movq %rax, 0x3e0(%rsp)
movq 0x3f0(%rsp), %rsi
movq 0x3e0(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x3c0(%rsp), %rdi
movq %rdi, 0xe0(%rsp)
callq 0x6580
leaq 0x3a8(%rsp), %rdi
movq %rdi, 0xe8(%rsp)
callq 0x10260
movq 0xe0(%rsp), %rdi
movq 0xe8(%rsp), %rdx
movl $0x2c, %esi
callq 0x2fa70
jmp 0x2dd8b
leaq 0x248(%rsp), %rdi
callq 0x30960
jmp 0x2dd9a
leaq 0x46cfa(%rip), %rsi     # 0x74a9b
leaq 0x248(%rsp), %rdi
callq 0x67b0
jmp 0x2ddb0
leaq 0x3a8(%rsp), %rdi
callq 0x10270
cmpq $0x4, %rax
jae 0x2de67
movq 0x3f0(%rsp), %rdx
leaq 0x46edf(%rip), %rsi     # 0x74cb5
leaq 0x228(%rsp), %rdi
callq 0xe8d0
jmp 0x2dde5
leaq 0x65814(%rip), %rdi     # 0x93600
leaq 0x228(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2de00
leaq 0x228(%rsp), %rdi
callq 0x6b50
jmp 0x2de67
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
jmp 0x2ec9b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
jmp 0x2ec8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x228(%rsp), %rdi
callq 0x6b50
jmp 0x2ec8e
leaq 0x210(%rsp), %rdi
callq 0x10260
movl $0x0, 0x20c(%rsp)
movl 0x20c(%rsp), %eax
movq %rax, 0xd0(%rsp)
leaq 0x3a8(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0xd0(%rsp), %rax
cmpq %rcx, %rax
jae 0x2e500
movl 0x20c(%rsp), %eax
movl %eax, %esi
leaq 0x3a8(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
movl $0x3d, %esi
leaq 0x210(%rsp), %rdx
callq 0x2fa70
jmp 0x2dedc
xorl %eax, %eax
movl %eax, %esi
leaq 0x210(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x46ab3(%rip), %rsi     # 0x749aa
callq 0xea20
movb %al, 0xcf(%rsp)
jmp 0x2df05
movb 0xcf(%rsp), %al
testb $0x1, %al
jne 0x2df12
jmp 0x2df54
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x268(%rsp), %rdi
callq 0x6060
jmp 0x2df36
jmp 0x2e4e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
jmp 0x2ec81
xorl %eax, %eax
movl %eax, %esi
leaq 0x210(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x46bc8(%rip), %rsi     # 0x74b37
callq 0xea20
movb %al, 0xce(%rsp)
jmp 0x2df7d
movb 0xce(%rsp), %al
testb $0x1, %al
jne 0x2df8d
jmp 0x2e067
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46b95(%rip), %rsi     # 0x74b3e
callq 0xea20
movb %al, 0xcd(%rsp)
jmp 0x2dfb7
movb 0xcd(%rsp), %al
testb $0x1, %al
jne 0x2dffb
jmp 0x2dfc4
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46b60(%rip), %rsi     # 0x74b40
callq 0xea20
movb %al, 0xcc(%rsp)
jmp 0x2dfee
movb 0xcc(%rsp), %al
testb $0x1, %al
jne 0x2dffb
jmp 0x2e008
movl $0xffffffff, 0x28c(%rsp) # imm = 0xFFFFFFFF
jmp 0x2e03e
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2fb70
movl %eax, 0xc8(%rsp)
jmp 0x2e030
movl 0xc8(%rsp), %eax
movl %eax, 0x28c(%rsp)
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x290(%rsp), %rdi
callq 0x6060
jmp 0x2e062
jmp 0x2e4e6
xorl %eax, %eax
movl %eax, %esi
leaq 0x210(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x46ac0(%rip), %rsi     # 0x74b42
callq 0xea20
movb %al, 0xc7(%rsp)
jmp 0x2e090
movb 0xc7(%rsp), %al
testb $0x1, %al
jne 0x2e0a0
jmp 0x2e39b
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46a8b(%rip), %rsi     # 0x74b47
callq 0xea20
movb %al, 0xc6(%rsp)
jmp 0x2e0ca
movb 0xc6(%rsp), %al
testb $0x1, %al
jne 0x2e0d7
jmp 0x2e0fd
leaq 0x2b0(%rsp), %rdi
leaq 0x46a61(%rip), %rsi     # 0x74b47
callq 0x67b0
jmp 0x2e0ed
movl $0x0, 0x2d0(%rsp)
jmp 0x2e396
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46a36(%rip), %rsi     # 0x74b4f
callq 0xea20
movb %al, 0xc5(%rsp)
jmp 0x2e127
movb 0xc5(%rsp), %al
testb $0x1, %al
jne 0x2e16b
jmp 0x2e134
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46a05(%rip), %rsi     # 0x74b55
callq 0xea20
movb %al, 0xc4(%rsp)
jmp 0x2e15e
movb 0xc4(%rsp), %al
testb $0x1, %al
jne 0x2e16b
jmp 0x2e191
leaq 0x2b0(%rsp), %rdi
leaq 0x469d5(%rip), %rsi     # 0x74b4f
callq 0x67b0
jmp 0x2e181
movl $0x1, 0x2d0(%rsp)
jmp 0x2e394
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x469b0(%rip), %rsi     # 0x74b5d
callq 0xea20
movb %al, 0xc3(%rsp)
jmp 0x2e1bb
movb 0xc3(%rsp), %al
testb $0x1, %al
jne 0x2e1c8
jmp 0x2e1ee
leaq 0x2b0(%rsp), %rdi
leaq 0x46986(%rip), %rsi     # 0x74b5d
callq 0x67b0
jmp 0x2e1de
movl $0x2, 0x2d0(%rsp)
jmp 0x2e392
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x4695d(%rip), %rsi     # 0x74b67
callq 0xea20
movb %al, 0xc2(%rsp)
jmp 0x2e218
movb 0xc2(%rsp), %al
testb $0x1, %al
jne 0x2e225
jmp 0x2e24b
leaq 0x2b0(%rsp), %rdi
leaq 0x46933(%rip), %rsi     # 0x74b67
callq 0x67b0
jmp 0x2e23b
movl $0x3, 0x2d0(%rsp)
jmp 0x2e390
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x46907(%rip), %rsi     # 0x74b6e
callq 0xea20
movb %al, 0xc1(%rsp)
jmp 0x2e275
movb 0xc1(%rsp), %al
testb $0x1, %al
jne 0x2e285
jmp 0x2e320
movl $0x4, 0x2d0(%rsp)
leaq 0x2b0(%rsp), %rdi
leaq 0x468cf(%rip), %rsi     # 0x74b6e
callq 0x67b0
jmp 0x2e2a6
cmpl $0x0, 0x28c(%rsp)
je 0x2e31e
movq 0x3f0(%rsp), %rdx
leaq 0x468b4(%rip), %rsi     # 0x74b73
leaq 0x1e8(%rsp), %rdi
callq 0xe8d0
jmp 0x2e2ce
leaq 0x6532b(%rip), %rdi     # 0x93600
leaq 0x1e8(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e2e9
leaq 0x1e8(%rsp), %rdi
callq 0x6b50
jmp 0x2e31e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x1e8(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
jmp 0x2e38e
movq 0x3f0(%rsp), %rdx
leaq 0x469b7(%rip), %rsi     # 0x74ce6
leaq 0x1c8(%rsp), %rdi
callq 0xe8d0
jmp 0x2e33e
leaq 0x652bb(%rip), %rdi     # 0x93600
leaq 0x1c8(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e359
leaq 0x1c8(%rsp), %rdi
callq 0x6b50
jmp 0x2e38e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x1c8(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
jmp 0x2e390
jmp 0x2e392
jmp 0x2e394
jmp 0x2e396
jmp 0x2e4e4
xorl %eax, %eax
movl %eax, %esi
leaq 0x210(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x46805(%rip), %rsi     # 0x74bbb
callq 0xea20
movb %al, 0xc0(%rsp)
jmp 0x2e3c4
movb 0xc0(%rsp), %al
testb $0x1, %al
jne 0x2e3d1
jmp 0x2e3fa
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x2d8(%rsp), %rdi
callq 0x6060
jmp 0x2e3f5
jmp 0x2e4e2
xorl %eax, %eax
movl %eax, %esi
leaq 0x210(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x467c1(%rip), %rsi     # 0x74bd6
callq 0xea20
movb %al, 0xbf(%rsp)
jmp 0x2e423
movb 0xbf(%rsp), %al
testb $0x1, %al
jne 0x2e430
jmp 0x2e474
movq 0xd8(%rsp), %rax
movb $0x1, 0x8(%rax)
leaq 0x210(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2fb70
movl %eax, 0xb8(%rsp)
jmp 0x2e464
movl 0xb8(%rsp), %eax
movl %eax, 0x288(%rsp)
jmp 0x2e4e0
leaq 0x378(%rsp), %rdi
leaq 0x478a6(%rip), %rsi     # 0x75d29
callq 0x30930
movb %al, 0xb7(%rsp)
jmp 0x2e491
movb 0xb7(%rsp), %al
testb $0x1, %al
jne 0x2e49e
jmp 0x2e4b6
leaq 0x378(%rsp), %rdi
leaq 0x4672d(%rip), %rsi     # 0x74bda
callq 0x6510
jmp 0x2e4b4
jmp 0x2e4b6
movl 0x20c(%rsp), %eax
movl %eax, %esi
leaq 0x3a8(%rsp), %rdi
callq 0x10290
movq %rax, %rsi
leaq 0x378(%rsp), %rdi
callq 0x6730
jmp 0x2e4de
jmp 0x2e4e0
jmp 0x2e4e2
jmp 0x2e4e4
jmp 0x2e4e6
jmp 0x2e4e8
jmp 0x2e4ea
movl 0x20c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x20c(%rsp)
jmp 0x2de7f
leaq 0x268(%rsp), %rdi
leaq 0x4781a(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xb6(%rsp)
jmp 0x2e51d
movb 0xb6(%rsp), %al
testb $0x1, %al
jne 0x2e52a
jmp 0x2e598
movq 0x3f0(%rsp), %rdx
leaq 0x467d7(%rip), %rsi     # 0x74d10
leaq 0x1a8(%rsp), %rdi
callq 0xe8d0
jmp 0x2e548
leaq 0x650b1(%rip), %rdi     # 0x93600
leaq 0x1a8(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e563
leaq 0x1a8(%rsp), %rdi
callq 0x6b50
jmp 0x2e598
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x1a8(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
leaq 0x290(%rsp), %rdi
leaq 0x47782(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xb5(%rsp)
jmp 0x2e5b5
movb 0xb5(%rsp), %al
testb $0x1, %al
jne 0x2e5c2
jmp 0x2e630
movq 0x3f0(%rsp), %rdx
leaq 0x46769(%rip), %rsi     # 0x74d3a
leaq 0x188(%rsp), %rdi
callq 0xe8d0
jmp 0x2e5e0
leaq 0x65019(%rip), %rdi     # 0x93600
leaq 0x188(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e5fb
leaq 0x188(%rsp), %rdi
callq 0x6b50
jmp 0x2e630
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x188(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
leaq 0x2b0(%rsp), %rdi
leaq 0x476ea(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xb4(%rsp)
jmp 0x2e64d
movb 0xb4(%rsp), %al
testb $0x1, %al
jne 0x2e65a
jmp 0x2e6c8
movq 0x3f0(%rsp), %rdx
leaq 0x466ff(%rip), %rsi     # 0x74d68
leaq 0x168(%rsp), %rdi
callq 0xe8d0
jmp 0x2e678
leaq 0x64f81(%rip), %rdi     # 0x93600
leaq 0x168(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e693
leaq 0x168(%rsp), %rdi
callq 0x6b50
jmp 0x2e6c8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x168(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
leaq 0x2d8(%rsp), %rdi
leaq 0x47652(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xb3(%rsp)
jmp 0x2e6e5
movb 0xb3(%rsp), %al
testb $0x1, %al
jne 0x2e6f2
jmp 0x2e760
movq 0x3f0(%rsp), %rdx
leaq 0x46693(%rip), %rsi     # 0x74d94
leaq 0x148(%rsp), %rdi
callq 0xe8d0
jmp 0x2e710
leaq 0x64ee9(%rip), %rdi     # 0x93600
leaq 0x148(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e72b
leaq 0x148(%rsp), %rdi
callq 0x6b50
jmp 0x2e760
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x148(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
cmpl $-0x1, 0x288(%rsp)
jne 0x2e7e6
movq 0xd8(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x2e7e6
movq 0x3f0(%rsp), %rdx
leaq 0x46640(%rip), %rsi     # 0x74dc7
leaq 0x128(%rsp), %rdi
callq 0xe8d0
jmp 0x2e796
leaq 0x64e63(%rip), %rdi     # 0x93600
leaq 0x128(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2e7b1
leaq 0x128(%rsp), %rdi
callq 0x6b50
jmp 0x2e7e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x3a0(%rsp)
movl %eax, 0x39c(%rsp)
leaq 0x128(%rsp), %rdi
callq 0x6b50
jmp 0x2ec81
movq 0xd8(%rsp), %rdi
addq $0x40, %rdi
leaq 0x248(%rsp), %rsi
callq 0x30e70
jmp 0x2e801
cmpl $-0x1, 0x288(%rsp)
je 0x2e8ac
movq 0xd8(%rsp), %rdi
addq $0xc0, %rdi
leaq 0x288(%rsp), %rsi
callq 0x30ef0
movq %rax, 0xa8(%rsp)
jmp 0x2e835
movq 0xa8(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x22b00
jmp 0x2e84c
movq 0xd8(%rsp), %rdi
movl 0x288(%rsp), %eax
movl %eax, 0x9c(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0xa0(%rsp)
jmp 0x2e880
movq 0xa0(%rsp), %rax
movl 0x9c(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x404(%rsp)
movl $0x1, 0x124(%rsp)
jmp 0x2ec3e
movq 0xd8(%rsp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq 0x268(%rsp), %rsi
callq 0x310f0
movq %rax, 0x90(%rsp)
jmp 0x2e8d2
movq 0xd8(%rsp), %rdi
movq 0x90(%rsp), %rax
movq %rax, 0x118(%rsp)
addq $0x150, %rdi            # imm = 0x150
callq 0x31120
movq %rax, 0x110(%rsp)
leaq 0x118(%rsp), %rdi
leaq 0x110(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2e91c
jmp 0x2e9fa
movq 0xd8(%rsp), %rdi
movq %rdi, %rax
addq $0xc0, %rax
movq %rax, 0x80(%rsp)
addq $0x150, %rdi            # imm = 0x150
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x88(%rsp)
jmp 0x2e953
movq 0x88(%rsp), %rsi
movq 0x80(%rsp), %rdi
callq 0x30ef0
movq %rax, 0x78(%rsp)
jmp 0x2e96f
movq 0x78(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x22b00
jmp 0x2e983
movq 0xd8(%rsp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x70(%rsp)
jmp 0x2e9a6
movq 0xd8(%rsp), %rdi
movq 0x70(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x64(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x68(%rsp)
jmp 0x2e9d4
movq 0x68(%rsp), %rax
movl 0x64(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x404(%rsp)
movl $0x1, 0x124(%rsp)
jmp 0x2ec3e
movq 0xd8(%rsp), %rdi
addq $0x180, %rdi            # imm = 0x180
leaq 0x268(%rsp), %rsi
callq 0x310f0
movq %rax, 0x58(%rsp)
jmp 0x2ea1d
movq 0xd8(%rsp), %rdi
movq 0x58(%rsp), %rax
movq %rax, 0x108(%rsp)
addq $0x180, %rdi            # imm = 0x180
callq 0x31120
movq %rax, 0x100(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2ea64
jmp 0x2eb36
movq 0xd8(%rsp), %rdi
movq %rdi, %rax
addq $0xc0, %rax
movq %rax, 0x48(%rsp)
addq $0x180, %rdi            # imm = 0x180
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x50(%rsp)
jmp 0x2ea95
movq 0x50(%rsp), %rsi
movq 0x48(%rsp), %rdi
callq 0x30ef0
movq %rax, 0x40(%rsp)
jmp 0x2eaab
movq 0x40(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x22b00
jmp 0x2eabf
movq 0xd8(%rsp), %rdi
addq $0x180, %rdi            # imm = 0x180
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x38(%rsp)
jmp 0x2eae2
movq 0xd8(%rsp), %rdi
movq 0x38(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x2c(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x30(%rsp)
jmp 0x2eb10
movq 0x30(%rsp), %rax
movl 0x2c(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x404(%rsp)
movl $0x1, 0x124(%rsp)
jmp 0x2ec3e
movq 0xd8(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x268(%rsp), %rsi
callq 0x310f0
movq %rax, 0x20(%rsp)
jmp 0x2eb59
movq 0xd8(%rsp), %rdi
movq 0x20(%rsp), %rax
movq %rax, 0xf8(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
callq 0x31120
movq %rax, 0xf0(%rsp)
leaq 0xf8(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2eb9d
jmp 0x2ebb8
movl $0x0, 0x404(%rsp)
movl $0x1, 0x124(%rsp)
jmp 0x2ec3e
movq 0xd8(%rsp), %rdi
addq $0xc0, %rdi
leaq 0x3ec(%rsp), %rsi
callq 0x30ef0
movq %rax, 0x18(%rsp)
jmp 0x2ebdb
movq 0x18(%rsp), %rdi
leaq 0x248(%rsp), %rsi
callq 0x22b00
jmp 0x2ebef
movq 0xd8(%rsp), %rdi
movl 0x3ec(%rsp), %eax
movl %eax, 0xc(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x268(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x10(%rsp)
jmp 0x2ec1d
movq 0x10(%rsp), %rax
movl 0xc(%rsp), %ecx
movl %ecx, (%rax)
movl $0x1, 0x404(%rsp)
movl $0x1, 0x124(%rsp)
leaq 0x210(%rsp), %rdi
callq 0x10cc0
leaq 0x248(%rsp), %rdi
callq 0x22620
leaq 0x3a8(%rsp), %rdi
callq 0x10cc0
leaq 0x3c0(%rsp), %rdi
callq 0x6b50
movl 0x404(%rsp), %eax
addq $0x408, %rsp            # imm = 0x408
retq
leaq 0x210(%rsp), %rdi
callq 0x10cc0
leaq 0x248(%rsp), %rdi
callq 0x22620
leaq 0x3a8(%rsp), %rdi
callq 0x10cc0
leaq 0x3c0(%rsp), %rdi
callq 0x6b50
movq 0x3a0(%rsp), %rdi
callq 0x69e0
nopw %cs:(%rax,%rax)