// File: /workspace/github_cpp_makefile_star2_O1/monikakushwaha28[P]Fiduccia_Matthesys-using-c-/Fiduccia_Mattheyses_v1.0.cpp
// Function: main
int main(int argc, char** argv)
{
	if (argc < 2)
	{
		cout << "missing argument: " << endl;
		cout << "Please provide files in correct format." << endl;
		return 0;
	}
	else if (argc == 2)
	{
		string aux_f, auxline;
		vector<string> aux_val;
		aux_f = argv[1];
		const char* aux_fi = argv[1];
		string node_f;
		string net_f;
		bool is_node = false, is_net = false;
		if (aux_f == "design.aux");
		{
			aux_file.open(aux_fi);
			while (getline(aux_file, auxline))
			{
				aux_val = split(auxline, ' ');
				for (int au = 0; au < aux_val.size(); au++)
				{
					if (aux_val[au] == "design.nodes")
					{
						node_f = aux_val[au];
						is_node = true;
					}
					if (aux_val[au] == "design.nets")
					{
						net_f = aux_val[au];
						is_net = true;
					}
					if (is_node && is_net)
					{
						break;
					}
				}
			}
		}
		if (is_node && is_net)
		{
			//Fetching Data from Nodes file;
			node_file.open(node_f.c_str());
			while (getline(node_file, nodeline))
			{
				sep_node = split(nodeline, ' ');
				node_type = sep_node[1];
				sep_node2 = split(sep_node[0], '_');
				istringstream(sep_node2[1]) >> instance;
				free_nodes.push_back(instance);

				if (node_type == "FDRE") weight = 5;
				else if (node_type == "LUT6") weight = 7;
				else if (node_type == "LUT5") weight = 6;
				else if (node_type == "LUT4") weight = 5;
				else if (node_type == "LUT3") weight = 4;
				else if (node_type == "LUT2") weight = 3;
				else if (node_type == "LUT1") weight = 2;
				else if (node_type == "CARRY8") weight = 34;
				else if (node_type == "DSP48E") weight = 429;
				else if (node_type == "RAMB36E2") weight = 379;
				else if (node_type == "BUFGCE") weight = 3;
				else if (node_type == "IBUF") weight = 2;
				else if (node_type == "OBUF") weight = 2;

				if ((part_count % 2) == 0) {
					node_map[instance].push_back(weight);
					node_map[instance].push_back(1);
					wp1 = wp1 + weight;
				}
				else if ((part_count % 2) != 0) {
					node_map[instance].push_back(weight);
					node_map[instance].push_back(-1);
					wpn1 = wpn1 + weight;
				}
				node_map[instance].push_back(0); //pushing back fix;
				part_count++;
			}
			node_file.close();

			//writing into files
			if (part_count == 3336)
			{
				output_f.open("Sain_Kushwaha_output_FPGA-example1_rc1.txt");
				output_f << "Benchmark Name : FPGA-example1" << endl;
				is_benc = true;
			}
			else if (part_count == 542239)
			{
				output_f.open("Sain_Kushwaha_output_FPGA-example2_rc1.txt");
				output_f << "Benchmark Name : FPGA-example2" << endl;
				is_benc = true;
			}
			else if (part_count == 427800)
			{
				output_f.open("Sain_Kushwaha_output_FPGA-example3_rc1.txt");
				output_f << "Benchmark Name : FPGA-example3" << endl;
				is_benc = true;
			}
			else if (part_count == 844184)
			{
				output_f.open("Sain_Kushwaha_output_FPGA-example4_rc1.txt");
				output_f << "Benchmark Name : FPGA-example4" << endl;
				is_benc = true;
			}

			net_file.open(net_f.c_str());
			while (getline(net_file, netline))
			{
				count1 = 0;
				countn1 = 0;
				if (netline.substr(0, 3) == "net")
				{
					int a = 0;
					while (netline.substr(a + 4, 1) != " ")
					{
						a = a++;
					}
					netname = netline.substr(4, a);   //NET is HERE.
					getline(net_file, net_nodeline);

					while (net_nodeline.substr(0, 6) != "endnet")
					{
						int b = 0;
						while (net_nodeline.substr(b + 1, 1) != " ")
						{
							b = b++;
						}
						sep_node = split(net_nodeline.substr(1, b), '_');  //NODE is HERE.
						istringstream(sep_node[1]) >> nodename;
						node_net_map[nodename].push_back(netname);
						net_node_map[netname].push_back(nodename);

						if (node_map[nodename][1] == 1)
						{
							count1 = count1 + 1;
						}
						else
						{
							countn1 = countn1 + 1;
						}

						getline(net_file, net_nodeline);
					}
					net_card[netname].push_back(count1);
					net_card[netname].push_back(countn1);
				}
			}
			net_file.close();

			//Removing Duplicates
			for (net_nodeiter iter = node_net_map.begin(); iter != node_net_map.end(); iter++)
			{
				node_net_map[iter->first].erase(unique(node_net_map[iter->first].begin(), node_net_map[iter->first].end()), node_net_map[iter->first].end());
			}

			//Initial Gain Bucket Calculation
			for (int i = 0; i < free_nodes.size(); i++)
			{
				int current_node = free_nodes[i];
				gain = 0;
				for (int var = 0; var < node_net_map[current_node].size(); var++)
				{
					current_net = node_net_map[current_node].at(var);
					net_count1 = net_card[current_net].at(0);
					net_countn1 = net_card[current_net].at(1);
					current_part = node_map[current_node].at(1);
					if (current_part == 1)
					{
						if (net_count1 == 1)
						{
							gain = gain + 1;
						}
						else if (net_countn1 == 0)
						{
							gain = gain - 1;
						}
					}
					else
					{
						if (net_count1 == 0)
						{
							gain = gain - 1;
						}
						else if (net_countn1 == 1)
						{
							gain = gain + 1;
						}
					}
				}
				gain_bucket[gain].push_back(current_node);
				node_map[current_node].push_back(gain);
			}


			//Initial Cutset 
			for (netcarditer a = net_card.begin(); a != net_card.end(); a++)
			{
				if ((net_card[a->first][0] != 0) && (net_card[a->first][1] != 0))
				{
					cutset = cutset + 1;
					initial_cutset = cutset;
				}
			}

			for (fg = 1; fg < 9; fg++)
			{
				cutset = cutset_cal(cutset);
			}
		}
	}

	end:int stop_s = clock(); //Timing of code ends here

	int time_ms = (stop_s - start_s) / double(CLOCKS_PER_SEC) * 1000;
	int time_hours = (time_ms) / (1000 * 60 * 60);
	int time_minutes = (time_ms - time_hours * (60 * 60 * 1000)) / (1000 * 60);
	int time_seconds = (time_ms - time_minutes * (1000 * 60)) / (1000);
	cout << "Execution Time:" << endl;
	cout << "HH: " << time_hours << " MM: " << time_minutes << " SS: " << time_seconds << endl; //Printing out total execution time.
	cout << "Execution Time: " << time_ms << endl;

	if (is_benc)
	{
		output_f << "Execution Time: " << " HH: " << time_hours << " MM: " << time_minutes << " SS: " << time_seconds << endl;
		output_f << "Starting Cut: " << initial_cutset << endl;
		output_f << "Final Cut: " << cutset << endl;
		output_f << "Percentage Change: " << (((initial_cutset - cutset) / initial_cutset) * 100) << "%" << endl;
		output_f << "Ratio Cut: " << (wp1 / wpn1) << endl;
	}

	output_f.close();
	return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2c8, %rsp            # imm = 0x2C8
cmpl $0x1, %edi
jg 0x47b3
movq 0x6898(%rip), %rbx      # 0xafd0
leaq 0x3901(%rip), %rsi      # 0x8040
movl $0x12, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x38d9(%rip), %rsi      # 0x8053
movl $0x27, %edx
movq %rbx, %rdi
callq 0x2230
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
jmp 0x5c76
cmpl $0x2, %edi
jne 0x589e
movq %rsi, %rbx
leaq -0x118(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x78(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
movq %rax, -0x50(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0x60(%rbp)
movq 0x8(%rsi), %r14
movq %r14, %rdi
callq 0x20d0
leaq -0x128(%rbp), %rdi
xorl %esi, %esi
xorl %edx, %edx
movq %r14, %rcx
movq %rax, %r8
callq 0x22b0
movq 0x8(%rbx), %rbx
leaq -0xf8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0xd8(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq 0x383f(%rip), %rsi      # 0x807b
leaq -0x128(%rbp), %rdi
callq 0x2090
leaq 0x6da1(%rip), %rdi      # 0xb5f0
movq %rbx, %rsi
movl $0x8, %edx
callq 0x2130
xorl %r12d, %r12d
xorl %r14d, %r14d
movq 0x6d87(%rip), %rax      # 0xb5f0
movq -0x18(%rax), %rdi
leaq 0x6d7c(%rip), %r15      # 0xb5f0
addq %r15, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %r15, %rdi
leaq -0x88(%rbp), %rsi
callq 0x2350
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
leaq -0x168(%rbp), %r13
jne 0x49f4
leaq -0x158(%rbp), %r15
movq %r15, -0x168(%rbp)
movq -0x88(%rbp), %rsi
movq -0x80(%rbp), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x6240
leaq -0x40(%rbp), %rbx
movq %rbx, %rdi
movq %r13, %rsi
movl $0x20, %edx
callq 0x289c
xorps %xmm0, %xmm0
movaps %xmm0, -0x2f0(%rbp)
movaps -0x60(%rbp), %xmm0
movq -0x50(%rbp), %rax
movups -0x40(%rbp), %xmm1
movaps %xmm1, -0x60(%rbp)
movq -0x30(%rbp), %rcx
movq %rcx, -0x50(%rbp)
movaps -0x2f0(%rbp), %xmm1
movaps %xmm0, -0x2f0(%rbp)
movq %rax, -0x2e0(%rbp)
movups %xmm1, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x2f0(%rbp), %rdi
callq 0x5e50
movq %rbx, %rdi
callq 0x5e50
movq -0x168(%rbp), %rdi
cmpq %r15, %rdi
je 0x4956
movq -0x158(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x60(%rbp), %rdi
cmpq %rdi, -0x58(%rbp)
je 0x4862
xorl %r15d, %r15d
xorl %r13d, %r13d
addq %r15, %rdi
leaq 0x3712(%rip), %rsi      # 0x8086
callq 0x2090
testl %eax, %eax
jne 0x4993
movq -0x60(%rbp), %rsi
addq %r15, %rsi
movb $0x1, %r14b
leaq -0x108(%rbp), %rdi
callq 0x2100
movq -0x60(%rbp), %rdi
addq %r15, %rdi
leaq 0x36f2(%rip), %rsi      # 0x8093
callq 0x2090
testl %eax, %eax
jne 0x49c0
movq -0x60(%rbp), %rsi
addq %r15, %rsi
movb $0x1, %r12b
leaq -0xe8(%rbp), %rdi
callq 0x2100
testb $0x1, %r14b
je 0x49d0
testb $0x1, %r12b
jne 0x4862
incq %r13
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rax
subq %rdi, %rax
sarq $0x5, %rax
addq $0x20, %r15
cmpq %r13, %rax
ja 0x496a
jmp 0x4862
testb $0x1, %r14b
je 0x5813
testb $0x1, %r12b
je 0x5813
movq -0x108(%rbp), %rsi
leaq 0x67ca(%rip), %rbx      # 0xb1e0
movq %rbx, %rdi
movl $0x8, %edx
callq 0x2130
leaq -0x40(%rbp), %r13
leaq -0x2f0(%rbp), %r14
leaq -0xa8(%rbp), %r12
movq 0x67a4(%rip), %rax      # 0xb1e0
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %rbx, %rdi
leaq 0x6f9e(%rip), %rsi      # 0xb9f8
callq 0x2350
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x4fa8
leaq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq 0x6f72(%rip), %rsi      # 0xb9f8
movq 0x6f73(%rip), %rdx      # 0xba00
addq %rsi, %rdx
leaq -0xc8(%rbp), %r15
movq %r15, %rdi
callq 0x6240
movq %r13, %rdi
movq %r15, %rsi
movl $0x20, %edx
callq 0x289c
xorps %xmm0, %xmm0
movaps %xmm0, -0x2f0(%rbp)
movups 0x70e0(%rip), %xmm0     # 0xbba0
movq 0x70e9(%rip), %rax      # 0xbbb0
movups -0x40(%rbp), %xmm1
movups %xmm1, 0x70ce(%rip)     # 0xbba0
movq -0x30(%rbp), %rcx
movq %rcx, 0x70d3(%rip)      # 0xbbb0
movaps -0x2f0(%rbp), %xmm1
movaps %xmm0, -0x2f0(%rbp)
movq %rax, -0x2e0(%rbp)
movups %xmm1, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
movq %r14, %rdi
callq 0x5e50
movq %r13, %rdi
callq 0x5e50
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x4b30
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x7069(%rip), %rsi      # 0xbba0
addq $0x20, %rsi
leaq 0x6ed6(%rip), %rdi      # 0xba18
callq 0x2100
movq 0x7052(%rip), %rax      # 0xbba0
leaq -0x98(%rbp), %rcx
movq %rcx, -0xa8(%rbp)
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x6240
movq %r13, %rdi
movq %r12, %rsi
movl $0x5f, %edx
callq 0x289c
xorps %xmm0, %xmm0
movaps %xmm0, -0x2f0(%rbp)
movups 0x7029(%rip), %xmm0     # 0xbbb8
movq 0x7032(%rip), %rax      # 0xbbc8
movups -0x40(%rbp), %xmm1
movups %xmm1, 0x7017(%rip)     # 0xbbb8
movq -0x30(%rbp), %rcx
movq %rcx, 0x701c(%rip)      # 0xbbc8
movaps -0x2f0(%rbp), %xmm1
movaps %xmm0, -0x2f0(%rbp)
movq %rax, -0x2e0(%rbp)
movups %xmm1, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
movq %r14, %rdi
callq 0x5e50
movq %r13, %rdi
callq 0x5e50
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x4bff
movq -0x98(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x6fb2(%rip), %rsi      # 0xbbb8
addq $0x20, %rsi
movq %r14, %rdi
movl $0x8, %edx
callq 0x2300
movq %r14, %rdi
leaq 0x6ed7(%rip), %rsi      # 0xbaf8
callq 0x2120
movq %r14, %rdi
movq 0x6398(%rip), %rsi      # 0xafc8
callq 0x2270
leaq -0x278(%rbp), %rdi
callq 0x20a0
movq 0x7080(%rip), %rsi      # 0xbcc8
cmpq 0x7081(%rip), %rsi      # 0xbcd0
je 0x4c66
movl 0x6ea1(%rip), %eax      # 0xbaf8
movl %eax, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x7064(%rip)      # 0xbcc8
jmp 0x4c79
leaq 0x7053(%rip), %rdi      # 0xbcc0
leaq 0x6e84(%rip), %rdx      # 0xbaf8
callq 0x6bbc
movq %r14, %r15
movq %r12, %r14
movq %r13, %r12
leaq 0x6d8f(%rip), %r13      # 0xba18
movq %r13, %rdi
leaq 0x340c(%rip), %rsi      # 0x809f
callq 0x2090
movl $0x5, %ebx
testl %eax, %eax
je 0x4de3
movq %r13, %rdi
leaq 0x33f5(%rip), %rsi      # 0x80a4
callq 0x2090
testl %eax, %eax
je 0x4dd7
movq %r13, %rdi
leaq 0x33e3(%rip), %rsi      # 0x80a9
callq 0x2090
testl %eax, %eax
je 0x4dde
movq %r13, %rdi
leaq 0x33d1(%rip), %rsi      # 0x80ae
callq 0x2090
testl %eax, %eax
movq %r12, %r13
movq %r14, %r12
movq %r15, %r14
je 0x4dec
leaq 0x6d1e(%rip), %rbx      # 0xba18
movq %rbx, %rdi
leaq 0x33af(%rip), %rsi      # 0x80b3
callq 0x2090
testl %eax, %eax
je 0x4f76
movq %rbx, %rdi
leaq 0x339d(%rip), %rsi      # 0x80b8
callq 0x2090
movq %rbx, %r15
movl $0x3, %ebx
testl %eax, %eax
je 0x4dec
movq %r15, %rdi
leaq 0x3383(%rip), %rsi      # 0x80bd
callq 0x2090
testl %eax, %eax
je 0x4f80
movq %r15, %rdi
leaq 0x3371(%rip), %rsi      # 0x80c2
callq 0x2090
testl %eax, %eax
je 0x4f8a
movq %r15, %rdi
leaq 0x3361(%rip), %rsi      # 0x80c9
callq 0x2090
testl %eax, %eax
je 0x4f94
movq %r15, %rdi
leaq 0x3351(%rip), %rsi      # 0x80d0
callq 0x2090
testl %eax, %eax
je 0x4f9e
movq %r15, %rdi
leaq 0x3343(%rip), %rsi      # 0x80d9
callq 0x2090
testl %eax, %eax
je 0x4dec
leaq 0x6c72(%rip), %rbx      # 0xba18
movq %rbx, %rdi
leaq 0x3330(%rip), %rsi      # 0x80e0
callq 0x2090
testl %eax, %eax
je 0x4f80
movq %rbx, %rdi
leaq 0x331e(%rip), %rsi      # 0x80e5
callq 0x2090
movl $0x2, %ebx
testl %eax, %eax
jne 0x4df2
jmp 0x4dec
movl $0x7, %ebx
jmp 0x4de3
movl $0x6, %ebx
movq %r12, %r13
movq %r14, %r12
movq %r15, %r14
movl %ebx, 0x6d0a(%rip)      # 0xbafc
testb $0x1, 0x6d07(%rip)      # 0xbb00
jne 0x4e31
leaq 0x6dce(%rip), %rdi      # 0xbbd0
leaq 0x6cef(%rip), %rsi      # 0xbaf8
callq 0x5f42
leaq 0x63cb(%rip), %rbx      # 0xb1e0
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x4e67
movl 0x6cd7(%rip), %ecx      # 0xbafc
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x4e76
leaq 0x6d98(%rip), %rdi      # 0xbbd0
leaq 0x6cb9(%rip), %rsi      # 0xbaf8
callq 0x5f42
leaq 0x6395(%rip), %rbx      # 0xb1e0
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x4ead
movl 0x6ca1(%rip), %ecx      # 0xbafc
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x4ebc
movq %rax, %rdi
leaq 0x6c8b(%rip), %rdx      # 0xbafc
callq 0x6bbc
leaq 0x6d53(%rip), %rdi      # 0xbbd0
leaq 0x6c74(%rip), %rsi      # 0xbaf8
callq 0x5f42
movl $0x1, -0x2f0(%rbp)
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x4ef3
movl $0x1, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x4efe
movq %rax, %rdi
leaq 0x6c45(%rip), %rdx      # 0xbafc
callq 0x6bbc
leaq 0x6d0d(%rip), %rdi      # 0xbbd0
leaq 0x6c2e(%rip), %rsi      # 0xbaf8
callq 0x5f42
movl $0xffffffff, -0x2f0(%rbp) # imm = 0xFFFFFFFF
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x4f07
movl $0xffffffff, (%rsi)     # imm = 0xFFFFFFFF
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x4f12
movq %rax, %rdi
movq %r14, %rdx
callq 0x714e
leaq 0x6c1b(%rip), %rax      # 0xbb20
jmp 0x4f19
movq %rax, %rdi
movq %r14, %rdx
callq 0x714e
leaq 0x6c0b(%rip), %rax      # 0xbb24
cvtsi2ssl 0x6bdb(%rip), %xmm0 # 0xbafc
addss (%rax), %xmm0
movss %xmm0, (%rax)
leaq 0x6ca0(%rip), %rdi      # 0xbbd0
leaq 0x6bc1(%rip), %rsi      # 0xbaf8
callq 0x5f42
movl $0x0, -0x2f0(%rbp)
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x4f60
movl $0x0, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x4f6b
movq %rax, %rdi
movq %r14, %rdx
callq 0x714e
incl 0x6b8f(%rip)            # 0xbb00
jmp 0x4a35
movl $0x4, %ebx
jmp 0x4dec
movl $0x2, %ebx
jmp 0x4dec
movl $0x22, %ebx
jmp 0x4dec
movl $0x1ad, %ebx            # imm = 0x1AD
jmp 0x4dec
movl $0x17b, %ebx            # imm = 0x17B
jmp 0x4dec
leaq 0x6231(%rip), %rdi      # 0xb1e0
callq 0x2070
movl 0x6b46(%rip), %eax      # 0xbb00
cmpl $0x8461e, %eax          # imm = 0x8461E
jg 0x4ff4
cmpl $0xd08, %eax            # imm = 0xD08
je 0x5027
cmpl $0x68718, %eax          # imm = 0x68718
jne 0x508b
leaq 0x681e(%rip), %rdi      # 0xb7f8
leaq 0x319d(%rip), %rsi      # 0x817e
movl $0x10, %edx
callq 0x2050
leaq 0x31b7(%rip), %rsi      # 0x81a9
jmp 0x5067
cmpl $0x8461f, %eax          # imm = 0x8461F
je 0x5048
cmpl $0xce198, %eax          # imm = 0xCE198
jne 0x508b
leaq 0x67eb(%rip), %rdi      # 0xb7f8
leaq 0x31b4(%rip), %rsi      # 0x81c8
movl $0x10, %edx
callq 0x2050
leaq 0x31ce(%rip), %rsi      # 0x81f3
jmp 0x5067
leaq 0x67ca(%rip), %rdi      # 0xb7f8
leaq 0x30b5(%rip), %rsi      # 0x80ea
movl $0x10, %edx
callq 0x2050
leaq 0x30cf(%rip), %rsi      # 0x8115
jmp 0x5067
leaq 0x67a9(%rip), %rdi      # 0xb7f8
leaq 0x30de(%rip), %rsi      # 0x8134
movl $0x10, %edx
callq 0x2050
leaq 0x30f8(%rip), %rsi      # 0x815f
leaq 0x678a(%rip), %rdi      # 0xb7f8
movl $0x1e, %edx
callq 0x2230
leaq 0x6779(%rip), %rdi      # 0xb7f8
callq 0x20e0
movb $0x1, 0x6b13(%rip)      # 0xbb9e
movq -0xe8(%rbp), %rsi
leaq 0x634f(%rip), %rbx      # 0xb3e8
movq %rbx, %rdi
movl $0x8, %edx
callq 0x2130
leaq -0x2e0(%rbp), %r14
leaq -0x2f0(%rbp), %r12
leaq 0x699d(%rip), %r15      # 0xba58
movq 0x6326(%rip), %rax      # 0xb3e8
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %rbx, %rdi
leaq 0x6958(%rip), %rsi      # 0xba38
callq 0x2350
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
testb $0x5, 0x20(%rax,%rcx)
jne 0x54d1
xorl %eax, %eax
movl %eax, 0x6a09(%rip)      # 0xbb08
movl %eax, 0x6a07(%rip)      # 0xbb0c
movl $0x3, %ecx
movq %r12, %rdi
leaq 0x6924(%rip), %rsi      # 0xba38
xorl %edx, %edx
callq 0x2200
movq %r12, %rdi
leaq 0x30f0(%rip), %rsi      # 0x8215
callq 0x2090
movl %eax, %ebx
movq -0x2f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x5147
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
leaq 0x6298(%rip), %rbx      # 0xb3e8
jne 0x50bb
movl $0x4, %edx
movl $0x1, %ecx
movq %r12, %rdi
leaq 0x68ce(%rip), %rsi      # 0xba38
callq 0x2200
movq %r12, %rdi
leaq 0x30d1(%rip), %rsi      # 0x824a
callq 0x2090
movl %eax, %ebx
movq -0x2f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x519b
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
jne 0x5156
movl $0x4, %edx
movq %r12, %rdi
leaq 0x688a(%rip), %rsi      # 0xba38
xorl %ecx, %ecx
callq 0x2200
leaq 0x68bc(%rip), %rdi      # 0xba78
movq %r12, %rsi
callq 0x2250
movq -0x2f0(%rbp), %rdi
cmpq %r14, %rdi
leaq 0x6213(%rip), %rbx      # 0xb3e8
je 0x51e6
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x61fb(%rip), %rax      # 0xb3e8
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2350
movl $0x6, %ecx
movq %r12, %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2200
movq %r12, %rdi
leaq 0x2fea(%rip), %rsi      # 0x8212
callq 0x2090
movl %eax, %ebx
movq -0x2f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x524a
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
je 0x5446
movl $0x1, %edx
movl $0x1, %ecx
movq %r12, %rdi
movq %r15, %rsi
callq 0x2200
movq %r12, %rdi
leaq 0x2fd9(%rip), %rsi      # 0x824a
callq 0x2090
movl %eax, %ebx
movq -0x2f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x5293
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x21e0
testl %ebx, %ebx
jne 0x5252
movl $0x1, %edx
leaq -0x148(%rbp), %rbx
movq %rbx, %rdi
movq %r15, %rsi
xorl %ecx, %ecx
callq 0x2200
leaq -0x40(%rbp), %r13
movq %r13, %rdi
movq %rbx, %rsi
movl $0x5f, %edx
callq 0x289c
leaq 0x611d(%rip), %rbx      # 0xb3e8
xorps %xmm0, %xmm0
movaps %xmm0, -0x2f0(%rbp)
movups 0x68c4(%rip), %xmm0     # 0xbba0
movq 0x68cd(%rip), %rax      # 0xbbb0
movups -0x40(%rbp), %xmm1
movups %xmm1, 0x68b2(%rip)     # 0xbba0
movq -0x30(%rbp), %rcx
movq %rcx, 0x68b7(%rip)      # 0xbbb0
movaps -0x2f0(%rbp), %xmm1
movaps %xmm0, -0x2f0(%rbp)
movq %rax, -0x2e0(%rbp)
movups %xmm1, -0x40(%rbp)
movq $0x0, -0x30(%rbp)
movq %r12, %rdi
callq 0x5e50
movq %r13, %rdi
callq 0x5e50
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x534c
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x684d(%rip), %rsi      # 0xbba0
addq $0x20, %rsi
movq %r12, %rdi
movl $0x8, %edx
callq 0x2300
movq %r12, %rdi
leaq 0x6796(%rip), %r13      # 0xbb04
movq %r13, %rsi
callq 0x2120
movq %r12, %rdi
movq 0x5c48(%rip), %rsi      # 0xafc8
callq 0x2270
leaq -0x278(%rbp), %rdi
callq 0x20a0
leaq 0x6868(%rip), %rdi      # 0xbc00
movq %r13, %rsi
callq 0x602a
movq %rax, %rdi
leaq 0x66ce(%rip), %rsi      # 0xba78
callq 0x5ef6
leaq 0x687a(%rip), %rdi      # 0xbc30
leaq 0x66bb(%rip), %rsi      # 0xba78
callq 0x5faa
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x53de
movl 0x6732(%rip), %ecx      # 0xbb04
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x53ed
movq %rax, %rdi
leaq 0x671c(%rip), %rdx      # 0xbb04
callq 0x6bbc
leaq 0x67dc(%rip), %rdi      # 0xbbd0
leaq 0x6709(%rip), %rsi      # 0xbb04
callq 0x5f42
movq (%rax), %rax
cmpl $0x1, 0x4(%rax)
leaq 0x66fe(%rip), %rax      # 0xbb0c
leaq 0x66f3(%rip), %rcx      # 0xbb08
cmoveq %rcx, %rax
incl (%rax)
movq 0x5fc6(%rip), %rax      # 0xb3e8
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %edx
movq %rbx, %rdi
movq %r15, %rsi
callq 0x2350
jmp 0x520c
leaq 0x6843(%rip), %rdi      # 0xbc90
leaq 0x6624(%rip), %rsi      # 0xba78
callq 0x5faa
leaq 0x5f88(%rip), %rbx      # 0xb3e8
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x547c
movl 0x6698(%rip), %ecx      # 0xbb08
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x548b
movq %rax, %rdi
leaq 0x6682(%rip), %rdx      # 0xbb08
callq 0x6bbc
leaq 0x67fe(%rip), %rdi      # 0xbc90
leaq 0x65df(%rip), %rsi      # 0xba78
callq 0x5faa
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x54bd
movl 0x665e(%rip), %ecx      # 0xbb0c
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x50bb
movq %rax, %rdi
leaq 0x6645(%rip), %rdx      # 0xbb0c
callq 0x6bbc
jmp 0x50bb
leaq 0x5f10(%rip), %rdi      # 0xb3e8
callq 0x2070
movq 0x6734(%rip), %rbx      # 0xbc18
leaq 0x671d(%rip), %rax      # 0xbc08
cmpq %rax, %rbx
je 0x5562
leaq 0x6709(%rip), %r14      # 0xbc00
leaq 0x20(%rbx), %r12
movq %r14, %rdi
movq %r12, %rsi
callq 0x602a
movq %rax, %r15
movq %r14, %rdi
movq %r12, %rsi
callq 0x602a
movq (%rax), %r13
movq %r14, %rdi
movq %r12, %rsi
callq 0x602a
movq 0x8(%rax), %rsi
movq %r13, %rdi
callq 0x7229
movq %rax, %r13
movq %r14, %rdi
movq %r12, %rsi
callq 0x602a
movq 0x8(%rax), %rdx
movq %r15, %rdi
movq %r13, %rsi
callq 0x7304
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
leaq 0x66ab(%rip), %rax      # 0xbc08
cmpq %rax, %rbx
jne 0x54f7
movq 0x6757(%rip), %rax      # 0xbcc0
cmpq %rax, 0x6758(%rip)      # 0xbcc8
je 0x5764
leaq -0x2f0(%rbp), %r14
leaq 0x6514(%rip), %r15      # 0xba98
xorl %ebx, %ebx
movl $0x1, %r13d
movq %rbx, -0x68(%rbp)
movl (%rax,%rbx,4), %eax
movl %eax, -0x2f0(%rbp)
movl $0x0, 0x65a1(%rip)      # 0xbb44
xorl %ebx, %ebx
xorl %r12d, %r12d
leaq 0x6651(%rip), %rdi      # 0xbc00
movq %r14, %rsi
callq 0x602a
movq 0x8(%rax), %rcx
subq (%rax), %rcx
sarq $0x5, %rcx
cmpq %r12, %rcx
jbe 0x56cb
leaq 0x662e(%rip), %rdi      # 0xbc00
movq %r14, %rsi
callq 0x602a
movq (%rax), %rsi
movq 0x8(%rax), %rdx
subq %rsi, %rdx
sarq $0x5, %rdx
cmpq %r12, %rdx
jbe 0x5c8a
addq %rbx, %rsi
movq %r15, %rdi
callq 0x2100
leaq 0x668d(%rip), %rdi      # 0xbc90
movq %r15, %rsi
callq 0x5faa
movq (%rax), %rcx
cmpq %rcx, 0x8(%rax)
je 0x5c8f
movl (%rcx), %eax
movl %eax, 0x651c(%rip)      # 0xbb3c
leaq 0x6669(%rip), %rdi      # 0xbc90
movq %r15, %rsi
callq 0x5faa
movq (%rax), %rcx
movq 0x8(%rax), %rdx
subq %rcx, %rdx
sarq $0x2, %rdx
cmpq $0x2, %rdx
jb 0x5c94
movl 0x4(%rcx), %eax
movl %eax, 0x64f0(%rip)      # 0xbb40
leaq 0x6579(%rip), %rdi      # 0xbbd0
movq %r14, %rsi
callq 0x5f42
movq (%rax), %rcx
movq 0x8(%rax), %rdx
subq %rcx, %rdx
sarq $0x2, %rdx
cmpq $0x2, %rdx
jb 0x5c94
movl 0x4(%rcx), %eax
movl %eax, 0x64b8(%rip)      # 0xbb38
movl 0x64b6(%rip), %ecx      # 0xbb3c
cmpl $0x1, %eax
jne 0x56a0
movl $0x1, %eax
cmpl $0x1, %ecx
je 0x56b9
cmpl $0x0, 0x64a4(%rip)      # 0xbb40
jne 0x56bf
jmp 0x56b4
testl %ecx, %ecx
je 0x56b4
movl $0x1, %eax
cmpl $0x1, 0x6490(%rip)      # 0xbb40
je 0x56b9
jmp 0x56bf
movl $0xffffffff, %eax       # imm = 0xFFFFFFFF
addl %eax, 0x6485(%rip)      # 0xbb44
incq %r12
addq $0x20, %rbx
jmp 0x55a8
leaq 0x658e(%rip), %rdi      # 0xbc60
leaq 0x646b(%rip), %rsi      # 0xbb44
callq 0x5f42
movq -0x68(%rbp), %rbx
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x56fe
movl -0x2f0(%rbp), %ecx
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x5709
movq %rax, %rdi
movq %r14, %rdx
callq 0x6bbc
leaq 0x64c0(%rip), %rdi      # 0xbbd0
movq %r14, %rsi
callq 0x5f42
movq 0x8(%rax), %rsi
cmpq 0x10(%rax), %rsi
je 0x5734
movl 0x641c(%rip), %ecx      # 0xbb44
movl %ecx, (%rsi)
addq $0x4, %rsi
movq %rsi, 0x8(%rax)
jmp 0x5743
movq %rax, %rdi
leaq 0x6406(%rip), %rdx      # 0xbb44
callq 0x6bbc
incq %rbx
movq 0x657b(%rip), %rcx      # 0xbcc8
movq 0x656c(%rip), %rax      # 0xbcc0
subq %rax, %rcx
sarq $0x2, %rcx
cmpq %rbx, %rcx
ja 0x558c
movq 0x653d(%rip), %rbx      # 0xbca8
leaq 0x6526(%rip), %r12      # 0xbc98
cmpq %r12, %rbx
je 0x57d9
leaq 0x6512(%rip), %r14      # 0xbc90
leaq 0x20(%rbx), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x5faa
movq (%rax), %rax
cmpl $0x0, (%rax)
je 0x57c9
movq %r14, %rdi
movq %r15, %rsi
callq 0x5faa
movq (%rax), %rax
cmpl $0x0, 0x4(%rax)
je 0x57c9
movss 0x636b(%rip), %xmm0     # 0xbb1c
addss 0x2867(%rip), %xmm0     # 0x8020
movss %xmm0, 0x635b(%rip)     # 0xbb1c
movss %xmm0, 0x634f(%rip)     # 0xbb18
movq %rbx, %rdi
callq 0x2160
movq %rax, %rbx
cmpq %r12, %rax
jne 0x577e
movl $0x1, 0x59dd(%rip)      # 0xb1c0
cvttss2si 0x6331(%rip), %edi # 0xbb1c
callq 0x4261
xorps %xmm0, %xmm0
cvtsi2ss %eax, %xmm0
movss %xmm0, 0x631d(%rip)     # 0xbb1c
movl 0x59bb(%rip), %eax      # 0xb1c0
leal 0x1(%rax), %ecx
movl %ecx, 0x59b2(%rip)      # 0xb1c0
cmpl $0x8, %eax
jl 0x57e3
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x5835
movq -0xd8(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x5857
movq -0xf8(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x60(%rbp), %rdi
callq 0x5e50
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x587c
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x589e
movq -0x118(%rbp), %rsi
incq %rsi
callq 0x21e0
callq 0x2140
subl 0x5933(%rip), %eax      # 0xb1dc
xorps %xmm0, %xmm0
cvtsi2sd %eax, %xmm0
divsd 0x2758(%rip), %xmm0     # 0x8010
mulsd 0x2758(%rip), %xmm0     # 0x8018
cvttsd2si %xmm0, %eax
cltq
imulq $0x4a90be59, %rax, %r12 # imm = 0x4A90BE59
movq %rax, %rcx
movq %rax, -0x68(%rbp)
movq %r12, %rax
shrq $0x3f, %rax
sarq $0x34, %r12
addl %eax, %r12d
imull $0xffc91180, %r12d, %eax # imm = 0xFFC91180
addl %ecx, %eax
cltq
imulq $0x45e7b273, %rax, %r15 # imm = 0x45E7B273
movq %r15, %rax
shrq $0x3f, %rax
sarq $0x2e, %r15
addl %eax, %r15d
imull $0xffff15a0, %r15d, %eax # imm = 0xFFFF15A0
addl %ecx, %eax
cltq
imulq $0x10624dd3, %rax, %r14 # imm = 0x10624DD3
movq %r14, %rax
shrq $0x3f, %rax
sarq $0x26, %r14
addl %eax, %r14d
movq 0x56a7(%rip), %r13      # 0xafd0
leaq 0x28e9(%rip), %rsi      # 0x8219
movl $0xf, %edx
movq %r13, %rdi
callq 0x2230
movq (%r13), %rax
movq -0x18(%rax), %rdi
addq %r13, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r13, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x28db(%rip), %rsi      # 0x8247
movl $0x4, %edx
movq %r13, %rdi
callq 0x2230
movq %r13, %rdi
movl %r12d, %esi
callq 0x2320
movq %rax, %rbx
leaq 0x289b(%rip), %rsi      # 0x8229
movl $0x5, %edx
movq %rax, %rdi
callq 0x2230
movq %rbx, %rdi
movl %r15d, %esi
callq 0x2320
movq %rax, %rbx
leaq 0x287f(%rip), %rsi      # 0x822f
movl $0x5, %edx
movq %rax, %rdi
callq 0x2230
movq %rbx, %rdi
movl %r14d, %esi
callq 0x2320
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x283c(%rip), %rsi      # 0x8235
movl $0x10, %edx
movq %r13, %rdi
callq 0x2230
movq %r13, %rdi
movq -0x68(%rbp), %rsi
callq 0x2320
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
cmpb $0x1, 0x615b(%rip)      # 0xbb9e
jne 0x5c6a
leaq 0x5da8(%rip), %rbx      # 0xb7f8
leaq 0x27de(%rip), %rsi      # 0x8235
movl $0x10, %edx
movq %rbx, %rdi
callq 0x2230
leaq 0x27db(%rip), %rsi      # 0x8246
movl $0x5, %edx
movq %rbx, %rdi
callq 0x2230
movq %rbx, %rdi
movl %r12d, %esi
callq 0x2320
movq %rax, %r12
leaq 0x279c(%rip), %rsi      # 0x8229
movl $0x5, %edx
movq %rax, %rdi
callq 0x2230
movq %r12, %rdi
movl %r15d, %esi
callq 0x2320
movq %rax, %r15
leaq 0x2780(%rip), %rsi      # 0x822f
movl $0x5, %edx
movq %rax, %rdi
callq 0x2230
movq %r15, %rdi
movl %r14d, %esi
callq 0x2320
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x2754(%rip), %rsi      # 0x824c
movl $0xe, %edx
movq %rbx, %rdi
callq 0x2230
cvtss2sd 0x600b(%rip), %xmm0     # 0xbb18
movq %rbx, %rdi
callq 0x22d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x2715(%rip), %rsi      # 0x825b
movl $0xb, %edx
movq %rbx, %rdi
callq 0x2230
xorps %xmm0, %xmm0
cvtss2sd 0x5fbe(%rip), %xmm0     # 0xbb1c
movq %rbx, %rdi
callq 0x22d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x26d0(%rip), %rsi      # 0x8267
movl $0x13, %edx
movq %rbx, %rdi
callq 0x2230
movss 0x5f6c(%rip), %xmm0     # 0xbb18
movaps %xmm0, %xmm1
subss 0x5f65(%rip), %xmm1     # 0xbb1c
divss %xmm0, %xmm1
mulss 0x2461(%rip), %xmm1     # 0x8024
xorps %xmm0, %xmm0
cvtss2sd %xmm1, %xmm0
movq %rbx, %rdi
callq 0x22d0
movq %rax, %r14
leaq 0x269f(%rip), %rsi      # 0x827b
movl $0x1, %edx
movq %rax, %rdi
callq 0x2230
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x2666(%rip), %rsi      # 0x827d
movl $0xb, %edx
movq %rbx, %rdi
callq 0x2230
movss 0x5ef4(%rip), %xmm0     # 0xbb20
divss 0x5ef0(%rip), %xmm0     # 0xbb24
cvtss2sd %xmm0, %xmm0
movq %rbx, %rdi
callq 0x22d0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21c0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2150
leaq 0x5b87(%rip), %rdi      # 0xb7f8
callq 0x2260
xorl %eax, %eax
addq $0x2c8, %rsp            # imm = 0x2C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %r13
jmp 0x5c94
xorl %r13d, %r13d
xorl %edx, %edx
leaq 0x2632(%rip), %rdi      # 0x82cd
movq %r13, %rsi
xorl %eax, %eax
callq 0x2290
movq %rax, %rbx
jmp 0x5e01
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5d88
jmp 0x5dba
movq %rax, %rbx
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x5dbd
movq -0x98(%rbp), %rsi
jmp 0x5d7c
jmp 0x5dba
movq %rax, %rbx
movq -0xc8(%rbp), %rdi
leaq -0xb8(%rbp), %rax
cmpq %rax, %rdi
je 0x5dbd
movq -0xb8(%rbp), %rsi
jmp 0x5d7c
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
movq %rax, %rbx
movq -0x168(%rbp), %rdi
cmpq %r15, %rdi
je 0x5dbd
movq -0x158(%rbp), %rsi
jmp 0x5d7c
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
movq %rax, %rbx
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x5dbd
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0x5dbd
jmp 0x5dba
movq %rax, %rbx
movq 0x5236(%rip), %rsi      # 0xafc8
leaq -0x2f0(%rbp), %rdi
callq 0x2270
leaq -0x278(%rbp), %rdi
callq 0x20a0
jmp 0x5dbd
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
jmp 0x5dba
movq %rax, %rbx
movq -0xe8(%rbp), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x5ddf
movq -0xd8(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x108(%rbp), %rdi
leaq -0xf8(%rbp), %rax
cmpq %rax, %rdi
je 0x5e01
movq -0xf8(%rbp), %rsi
incq %rsi
callq 0x21e0
leaq -0x60(%rbp), %rdi
callq 0x5e50
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x5e26
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x21e0
movq -0x128(%rbp), %rdi
leaq -0x118(%rbp), %rax
cmpq %rax, %rdi
je 0x5e48
movq -0x118(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2330