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

	Field_description I;
	I.Field = "INFO";
	vector<string> tokens;
	tokenize(details, ',', tokens);

	if (tokens.size() < 4)
		LOG.error("Expected at least 4 parts in INFO 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 INFO meta-information: " + in);
		}
		else if (entry[0] == "Description") I.Description = entry[1];
		else if (entry[0] == "Source") I.Source = entry[1];
		else if (entry[0] == "Version") I.Version = 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 INFO field description: " + in);
	if (I.N_entries_str == "") LOG.error("Number required in INFO field description: " + in);
	if (I.Type_str == "") LOG.error("Type required in INFO field description: " + in);
	if (I.Description == "") LOG.error("Description required in INFO field description: " + in);
	if ((I.idx == -1) && (has_idx)) LOG.error("Missing index in INFO field description: " + in);
	parsed_lines.push_back(I);

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

// Assembly:
subq $0x3f8, %rsp            # imm = 0x3F8
movq %rdi, 0x3e8(%rsp)
movq %rsi, 0x3e0(%rsp)
movl %edx, 0x3dc(%rsp)
movq 0x3e8(%rsp), %rax
movq %rax, 0xd8(%rsp)
movq 0x3e0(%rsp), %rdi
leaq 0x48979(%rip), %rsi     # 0x74b06
movq $-0x1, %rdx
callq 0x64f0
movq %rax, 0x3d0(%rsp)
movq 0x3e0(%rsp), %rsi
movq 0x3d0(%rsp), %rcx
xorl %eax, %eax
movl %eax, %edx
leaq 0x3b0(%rsp), %rdi
callq 0x6580
leaq 0x260(%rsp), %rdi
callq 0x30960
jmp 0x2c1d1
leaq 0x4a05c(%rip), %rsi     # 0x76234
leaq 0x260(%rsp), %rdi
callq 0x67b0
jmp 0x2c1e7
leaq 0x238(%rsp), %rdi
movq %rdi, 0xd0(%rsp)
callq 0x10260
movq 0xd0(%rsp), %rdx
leaq 0x3b0(%rsp), %rdi
movl $0x2c, %esi
callq 0x2fa70
jmp 0x2c218
leaq 0x238(%rsp), %rdi
callq 0x10270
cmpq $0x4, %rax
jae 0x2c2e8
movq 0x3e0(%rsp), %rdx
leaq 0x488ca(%rip), %rsi     # 0x74b08
leaq 0x218(%rsp), %rdi
callq 0xe8d0
jmp 0x2c24d
leaq 0x673ac(%rip), %rdi     # 0x93600
leaq 0x218(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2c268
leaq 0x218(%rsp), %rdi
callq 0x6b50
jmp 0x2c2e8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x2d1db
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x2d1ce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x2d1c1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x218(%rsp), %rdi
callq 0x6b50
jmp 0x2d1c1
leaq 0x200(%rsp), %rdi
callq 0x10260
movl $0x0, 0x1fc(%rsp)
movl 0x1fc(%rsp), %eax
movq %rax, 0xc8(%rsp)
leaq 0x238(%rsp), %rdi
callq 0x10270
movq %rax, %rcx
movq 0xc8(%rsp), %rax
cmpq %rcx, %rax
jae 0x2ca43
movl 0x1fc(%rsp), %eax
movl %eax, %esi
leaq 0x238(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
movl $0x3d, %esi
leaq 0x200(%rsp), %rdx
callq 0x2fa70
jmp 0x2c35d
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x48632(%rip), %rsi     # 0x749aa
callq 0xea20
movb %al, 0xc7(%rsp)
jmp 0x2c386
movb 0xc7(%rsp), %al
testb $0x1, %al
jne 0x2c393
jmp 0x2c3d5
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x280(%rsp), %rdi
callq 0x6060
jmp 0x2c3b7
jmp 0x2ca2b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
jmp 0x2d1b4
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x48747(%rip), %rsi     # 0x74b37
callq 0xea20
movb %al, 0xc6(%rsp)
jmp 0x2c3fe
movb 0xc6(%rsp), %al
testb $0x1, %al
jne 0x2c40e
jmp 0x2c4e8
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x48714(%rip), %rsi     # 0x74b3e
callq 0xea20
movb %al, 0xc5(%rsp)
jmp 0x2c438
movb 0xc5(%rsp), %al
testb $0x1, %al
jne 0x2c47c
jmp 0x2c445
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x486df(%rip), %rsi     # 0x74b40
callq 0xea20
movb %al, 0xc4(%rsp)
jmp 0x2c46f
movb 0xc4(%rsp), %al
testb $0x1, %al
jne 0x2c47c
jmp 0x2c489
movl $0xffffffff, 0x2a4(%rsp) # imm = 0xFFFFFFFF
jmp 0x2c4bf
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2fb70
movl %eax, 0xc0(%rsp)
jmp 0x2c4b1
movl 0xc0(%rsp), %eax
movl %eax, 0x2a4(%rsp)
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x2a8(%rsp), %rdi
callq 0x6060
jmp 0x2c4e3
jmp 0x2ca29
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x4863f(%rip), %rsi     # 0x74b42
callq 0xea20
movb %al, 0xbf(%rsp)
jmp 0x2c511
movb 0xbf(%rsp), %al
testb $0x1, %al
jne 0x2c521
jmp 0x2c81c
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x4860a(%rip), %rsi     # 0x74b47
callq 0xea20
movb %al, 0xbe(%rsp)
jmp 0x2c54b
movb 0xbe(%rsp), %al
testb $0x1, %al
jne 0x2c558
jmp 0x2c57e
leaq 0x2c8(%rsp), %rdi
leaq 0x485e0(%rip), %rsi     # 0x74b47
callq 0x67b0
jmp 0x2c56e
movl $0x0, 0x2e8(%rsp)
jmp 0x2c817
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x485b5(%rip), %rsi     # 0x74b4f
callq 0xea20
movb %al, 0xbd(%rsp)
jmp 0x2c5a8
movb 0xbd(%rsp), %al
testb $0x1, %al
jne 0x2c5ec
jmp 0x2c5b5
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x48584(%rip), %rsi     # 0x74b55
callq 0xea20
movb %al, 0xbc(%rsp)
jmp 0x2c5df
movb 0xbc(%rsp), %al
testb $0x1, %al
jne 0x2c5ec
jmp 0x2c612
leaq 0x2c8(%rsp), %rdi
leaq 0x48554(%rip), %rsi     # 0x74b4f
callq 0x67b0
jmp 0x2c602
movl $0x1, 0x2e8(%rsp)
jmp 0x2c815
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x4852f(%rip), %rsi     # 0x74b5d
callq 0xea20
movb %al, 0xbb(%rsp)
jmp 0x2c63c
movb 0xbb(%rsp), %al
testb $0x1, %al
jne 0x2c649
jmp 0x2c66f
leaq 0x2c8(%rsp), %rdi
leaq 0x48505(%rip), %rsi     # 0x74b5d
callq 0x67b0
jmp 0x2c65f
movl $0x2, 0x2e8(%rsp)
jmp 0x2c813
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x484dc(%rip), %rsi     # 0x74b67
callq 0xea20
movb %al, 0xba(%rsp)
jmp 0x2c699
movb 0xba(%rsp), %al
testb $0x1, %al
jne 0x2c6a6
jmp 0x2c6cc
leaq 0x2c8(%rsp), %rdi
leaq 0x484b2(%rip), %rsi     # 0x74b67
callq 0x67b0
jmp 0x2c6bc
movl $0x3, 0x2e8(%rsp)
jmp 0x2c811
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
leaq 0x48486(%rip), %rsi     # 0x74b6e
callq 0xea20
movb %al, 0xb9(%rsp)
jmp 0x2c6f6
movb 0xb9(%rsp), %al
testb $0x1, %al
jne 0x2c706
jmp 0x2c7a1
movl $0x4, 0x2e8(%rsp)
leaq 0x2c8(%rsp), %rdi
leaq 0x4844e(%rip), %rsi     # 0x74b6e
callq 0x67b0
jmp 0x2c727
cmpl $0x0, 0x2a4(%rsp)
je 0x2c79f
movq 0x3e0(%rsp), %rdx
leaq 0x48433(%rip), %rsi     # 0x74b73
leaq 0x1d8(%rsp), %rdi
callq 0xe8d0
jmp 0x2c74f
leaq 0x66eaa(%rip), %rdi     # 0x93600
leaq 0x1d8(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2c76a
leaq 0x1d8(%rsp), %rdi
callq 0x6b50
jmp 0x2c79f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x1d8(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
jmp 0x2c80f
movq 0x3e0(%rsp), %rdx
leaq 0x483e3(%rip), %rsi     # 0x74b93
leaq 0x1b8(%rsp), %rdi
callq 0xe8d0
jmp 0x2c7bf
leaq 0x66e3a(%rip), %rdi     # 0x93600
leaq 0x1b8(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2c7da
leaq 0x1b8(%rsp), %rdi
callq 0x6b50
jmp 0x2c80f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x1b8(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
jmp 0x2c811
jmp 0x2c813
jmp 0x2c815
jmp 0x2c817
jmp 0x2ca27
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x48384(%rip), %rsi     # 0x74bbb
callq 0xea20
movb %al, 0xb8(%rsp)
jmp 0x2c845
movb 0xb8(%rsp), %al
testb $0x1, %al
jne 0x2c852
jmp 0x2c87b
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x2f0(%rsp), %rdi
callq 0x6060
jmp 0x2c876
jmp 0x2ca25
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x48331(%rip), %rsi     # 0x74bc7
callq 0xea20
movb %al, 0xb7(%rsp)
jmp 0x2c8a4
movb 0xb7(%rsp), %al
testb $0x1, %al
jne 0x2c8b1
jmp 0x2c8da
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x350(%rsp), %rdi
callq 0x6060
jmp 0x2c8d5
jmp 0x2ca23
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x482d9(%rip), %rsi     # 0x74bce
callq 0xea20
movb %al, 0xb6(%rsp)
jmp 0x2c903
movb 0xb6(%rsp), %al
testb $0x1, %al
jne 0x2c910
jmp 0x2c939
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rsi
leaq 0x370(%rsp), %rdi
callq 0x6060
jmp 0x2c934
jmp 0x2ca21
xorl %eax, %eax
movl %eax, %esi
leaq 0x200(%rsp), %rdi
callq 0x10290
movq %rax, %rdi
leaq 0x48282(%rip), %rsi     # 0x74bd6
callq 0xea20
movb %al, 0xb5(%rsp)
jmp 0x2c962
movb 0xb5(%rsp), %al
testb $0x1, %al
jne 0x2c96f
jmp 0x2c9b3
movq 0xd8(%rsp), %rax
movb $0x1, 0x8(%rax)
leaq 0x200(%rsp), %rdi
movl $0x1, %esi
callq 0x10290
movq %rax, %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x2fb70
movl %eax, 0xb0(%rsp)
jmp 0x2c9a3
movl 0xb0(%rsp), %eax
movl %eax, 0x2a0(%rsp)
jmp 0x2ca1f
leaq 0x390(%rsp), %rdi
leaq 0x49367(%rip), %rsi     # 0x75d29
callq 0x30930
movb %al, 0xaf(%rsp)
jmp 0x2c9d0
movb 0xaf(%rsp), %al
testb $0x1, %al
jne 0x2c9dd
jmp 0x2c9f5
leaq 0x390(%rsp), %rdi
leaq 0x481ee(%rip), %rsi     # 0x74bda
callq 0x6510
jmp 0x2c9f3
jmp 0x2c9f5
movl 0x1fc(%rsp), %eax
movl %eax, %esi
leaq 0x238(%rsp), %rdi
callq 0x10290
movq %rax, %rsi
leaq 0x390(%rsp), %rdi
callq 0x6730
jmp 0x2ca1d
jmp 0x2ca1f
jmp 0x2ca21
jmp 0x2ca23
jmp 0x2ca25
jmp 0x2ca27
jmp 0x2ca29
jmp 0x2ca2b
jmp 0x2ca2d
movl 0x1fc(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1fc(%rsp)
jmp 0x2c300
leaq 0x280(%rsp), %rdi
leaq 0x492d7(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xae(%rsp)
jmp 0x2ca60
movb 0xae(%rsp), %al
testb $0x1, %al
jne 0x2ca6d
jmp 0x2cadb
movq 0x3e0(%rsp), %rdx
leaq 0x48160(%rip), %rsi     # 0x74bdc
leaq 0x198(%rsp), %rdi
callq 0xe8d0
jmp 0x2ca8b
leaq 0x66b6e(%rip), %rdi     # 0x93600
leaq 0x198(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2caa6
leaq 0x198(%rsp), %rdi
callq 0x6b50
jmp 0x2cadb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x198(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
leaq 0x2a8(%rsp), %rdi
leaq 0x4923f(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xad(%rsp)
jmp 0x2caf8
movb 0xad(%rsp), %al
testb $0x1, %al
jne 0x2cb05
jmp 0x2cb73
movq 0x3e0(%rsp), %rdx
leaq 0x480f0(%rip), %rsi     # 0x74c04
leaq 0x178(%rsp), %rdi
callq 0xe8d0
jmp 0x2cb23
leaq 0x66ad6(%rip), %rdi     # 0x93600
leaq 0x178(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2cb3e
leaq 0x178(%rsp), %rdi
callq 0x6b50
jmp 0x2cb73
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x178(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
leaq 0x2c8(%rsp), %rdi
leaq 0x491a7(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xac(%rsp)
jmp 0x2cb90
movb 0xac(%rsp), %al
testb $0x1, %al
jne 0x2cb9d
jmp 0x2cc0b
movq 0x3e0(%rsp), %rdx
leaq 0x48084(%rip), %rsi     # 0x74c30
leaq 0x158(%rsp), %rdi
callq 0xe8d0
jmp 0x2cbbb
leaq 0x66a3e(%rip), %rdi     # 0x93600
leaq 0x158(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2cbd6
leaq 0x158(%rsp), %rdi
callq 0x6b50
jmp 0x2cc0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x158(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
leaq 0x2f0(%rsp), %rdi
leaq 0x4910f(%rip), %rsi     # 0x75d29
callq 0xea20
movb %al, 0xab(%rsp)
jmp 0x2cc28
movb 0xab(%rsp), %al
testb $0x1, %al
jne 0x2cc35
jmp 0x2cca3
movq 0x3e0(%rsp), %rdx
leaq 0x48016(%rip), %rsi     # 0x74c5a
leaq 0x138(%rsp), %rdi
callq 0xe8d0
jmp 0x2cc53
leaq 0x669a6(%rip), %rdi     # 0x93600
leaq 0x138(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2cc6e
leaq 0x138(%rsp), %rdi
callq 0x6b50
jmp 0x2cca3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x138(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
cmpl $-0x1, 0x2a0(%rsp)
jne 0x2cd29
movq 0xd8(%rsp), %rax
testb $0x1, 0x8(%rax)
je 0x2cd29
movq 0x3e0(%rsp), %rdx
leaq 0x47fc1(%rip), %rsi     # 0x74c8b
leaq 0x118(%rsp), %rdi
callq 0xe8d0
jmp 0x2ccd9
leaq 0x66920(%rip), %rdi     # 0x93600
leaq 0x118(%rsp), %rsi
movl $0x1, %edx
callq 0x712f0
jmp 0x2ccf4
leaq 0x118(%rsp), %rdi
callq 0x6b50
jmp 0x2cd29
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0x258(%rsp)
movl %eax, 0x254(%rsp)
leaq 0x118(%rsp), %rdi
callq 0x6b50
jmp 0x2d1b4
movq 0xd8(%rsp), %rdi
addq $0x40, %rdi
leaq 0x260(%rsp), %rsi
callq 0x30e70
jmp 0x2cd44
cmpl $-0x1, 0x2a0(%rsp)
je 0x2cdec
movq 0xd8(%rsp), %rdi
addq $0x60, %rdi
leaq 0x2a0(%rsp), %rsi
callq 0x30ef0
movq %rax, 0xa0(%rsp)
jmp 0x2cd75
movq 0xa0(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x22b00
jmp 0x2cd8c
movq 0xd8(%rsp), %rdi
movl 0x2a0(%rsp), %eax
movl %eax, 0x94(%rsp)
addq $0x180, %rdi            # imm = 0x180
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x98(%rsp)
jmp 0x2cdc0
movq 0x98(%rsp), %rax
movl 0x94(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x3f4(%rsp)
movl $0x1, 0x114(%rsp)
jmp 0x2d171
movq 0xd8(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x280(%rsp), %rsi
callq 0x310f0
movq %rax, 0x88(%rsp)
jmp 0x2ce12
movq 0xd8(%rsp), %rdi
movq 0x88(%rsp), %rax
movq %rax, 0x108(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
callq 0x31120
movq %rax, 0x100(%rsp)
leaq 0x108(%rsp), %rdi
leaq 0x100(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2ce5c
jmp 0x2cf32
movq 0xd8(%rsp), %rdi
movq %rdi, %rax
addq $0x60, %rax
movq %rax, 0x78(%rsp)
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x80(%rsp)
jmp 0x2ce8e
movq 0x80(%rsp), %rsi
movq 0x78(%rsp), %rdi
callq 0x30ef0
movq %rax, 0x70(%rsp)
jmp 0x2cea7
movq 0x70(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x22b00
jmp 0x2cebb
movq 0xd8(%rsp), %rdi
addq $0x1b0, %rdi            # imm = 0x1B0
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x68(%rsp)
jmp 0x2cede
movq 0xd8(%rsp), %rdi
movq 0x68(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x5c(%rsp)
addq $0x180, %rdi            # imm = 0x180
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x60(%rsp)
jmp 0x2cf0c
movq 0x60(%rsp), %rax
movl 0x5c(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x3f4(%rsp)
movl $0x1, 0x114(%rsp)
jmp 0x2d171
movq 0xd8(%rsp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq 0x280(%rsp), %rsi
callq 0x310f0
movq %rax, 0x50(%rsp)
jmp 0x2cf55
movq 0xd8(%rsp), %rdi
movq 0x50(%rsp), %rax
movq %rax, 0xf8(%rsp)
addq $0x150, %rdi            # imm = 0x150
callq 0x31120
movq %rax, 0xf0(%rsp)
leaq 0xf8(%rsp), %rdi
leaq 0xf0(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2cf9c
jmp 0x2d06c
movq 0xd8(%rsp), %rdi
movq %rdi, %rax
addq $0x60, %rax
movq %rax, 0x40(%rsp)
addq $0x150, %rdi            # imm = 0x150
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x48(%rsp)
jmp 0x2cfcb
movq 0x48(%rsp), %rsi
movq 0x40(%rsp), %rdi
callq 0x30ef0
movq %rax, 0x38(%rsp)
jmp 0x2cfe1
movq 0x38(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x22b00
jmp 0x2cff5
movq 0xd8(%rsp), %rdi
addq $0x150, %rdi            # imm = 0x150
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x30(%rsp)
jmp 0x2d018
movq 0xd8(%rsp), %rdi
movq 0x30(%rsp), %rax
movl (%rax), %eax
movl %eax, 0x24(%rsp)
addq $0x180, %rdi            # imm = 0x180
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x28(%rsp)
jmp 0x2d046
movq 0x28(%rsp), %rax
movl 0x24(%rsp), %ecx
movl %ecx, (%rax)
movl $0x0, 0x3f4(%rsp)
movl $0x1, 0x114(%rsp)
jmp 0x2d171
movq 0xd8(%rsp), %rdi
addq $0x180, %rdi            # imm = 0x180
leaq 0x280(%rsp), %rsi
callq 0x310f0
movq %rax, 0x18(%rsp)
jmp 0x2d08f
movq 0xd8(%rsp), %rdi
movq 0x18(%rsp), %rax
movq %rax, 0xe8(%rsp)
addq $0x180, %rdi            # imm = 0x180
callq 0x31120
movq %rax, 0xe0(%rsp)
leaq 0xe8(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x310d0
testb $0x1, %al
jne 0x2d0d3
jmp 0x2d0ee
movl $0x0, 0x3f4(%rsp)
movl $0x1, 0x114(%rsp)
jmp 0x2d171
movq 0xd8(%rsp), %rdi
addq $0x60, %rdi
leaq 0x3dc(%rsp), %rsi
callq 0x30ef0
movq %rax, 0x10(%rsp)
jmp 0x2d10e
movq 0x10(%rsp), %rdi
leaq 0x260(%rsp), %rsi
callq 0x22b00
jmp 0x2d122
movq 0xd8(%rsp), %rdi
movl 0x3dc(%rsp), %eax
movl %eax, 0x4(%rsp)
addq $0x180, %rdi            # imm = 0x180
leaq 0x280(%rsp), %rsi
callq 0x30fe0
movq %rax, 0x8(%rsp)
jmp 0x2d150
movq 0x8(%rsp), %rax
movl 0x4(%rsp), %ecx
movl %ecx, (%rax)
movl $0x1, 0x3f4(%rsp)
movl $0x1, 0x114(%rsp)
leaq 0x200(%rsp), %rdi
callq 0x10cc0
leaq 0x238(%rsp), %rdi
callq 0x10cc0
leaq 0x260(%rsp), %rdi
callq 0x22620
leaq 0x3b0(%rsp), %rdi
callq 0x6b50
movl 0x3f4(%rsp), %eax
addq $0x3f8, %rsp            # imm = 0x3F8
retq
leaq 0x200(%rsp), %rdi
callq 0x10cc0
leaq 0x238(%rsp), %rdi
callq 0x10cc0
leaq 0x260(%rsp), %rdi
callq 0x22620
leaq 0x3b0(%rsp), %rdi
callq 0x6b50
movq 0x258(%rsp), %rdi
callq 0x69e0
nopw %cs:(%rax,%rax)