// File: /workspace/github_cpp_makefile_star2_O1/rthoelen[P]NXCore_Kenwood/main.cc
// Function: main
int main(int argc, char *argv[])
{
	unsigned int i, j;
	int len;
	struct addrinfo hints, *result;

	boost::property_tree::ptree pt;

	try {

	boost::property_tree::ini_parser::read_ini("NXCore.ini", pt);

	}
	catch(const boost::property_tree::ptree_error  &e)
	{
		std::cout << "Config file not found!" << std::endl << std::endl;
		exit(1);
	}


	if(argc > 1)
		if (strcmp(argv[1], "-d") == 0)
			debug = 1;

	// Print out version and copyright info
	std::cout << version << std::endl;
	std::cout << copyright << std::endl << std::endl;

	// Get list of repeaters

	std::string s = pt.get<std::string>("repeaters");
	std::string tg;

	std::vector<std::string> elems;
	std::vector<std::string> tg_elems;

	// Split by space or tab
	boost::split(elems, s, boost::is_any_of("\t ,"), boost::token_compress_on);

	repeater_count = elems.size();
	std::cout << "Repeater Count:  " << repeater_count << std::endl << std::endl;

	r_list = elems;

	repeater = (struct rpt *)calloc(repeater_count, sizeof(struct rpt));


	tempaddr = inet_addr(pt.get<std::string>("nodeip").c_str());

	up_packet[4] = (tempaddr >> 24);
	up_packet[5] = (tempaddr >> 16) & 0xff;
	up_packet[6] = (tempaddr >> 8) & 0xff;
	up_packet[7] = (tempaddr & 0xff);

	down_packet[4] = (tempaddr >> 24);
	down_packet[5] = (tempaddr >> 16) & 0xff;
	down_packet[6] = (tempaddr >> 8) & 0xff;
	down_packet[7] = (tempaddr & 0xff);


	// Start populating structure
	std::string key;

	for(i = 0; i < elems.size(); i++)
	{

		key.assign(elems[i]);
		key.append(".address");

		memset(&hints,0, sizeof(hints));
		hints.ai_family = AF_INET;

		
		len = pt.get<std::string>(key).size();
		repeater[i].hostname = (char *)calloc(1, len+1);
		memcpy(repeater[i].hostname, (char *)pt.get<std::string>(key).c_str(),len+1);

		if(getaddrinfo(repeater[i].hostname, NULL, &hints, &result) == -1)
		{
			std::cout << "Error resolving " << pt.get<std::string>(key) << ", exiting" << std::endl;
			exit(1);
		}	
	
		repeater[i].rpt_addr_00.sin_addr.s_addr = ((struct sockaddr_in *)(result->ai_addr))->sin_addr.s_addr;
		repeater[i].rpt_addr_01.sin_addr.s_addr = ((struct sockaddr_in *)(result->ai_addr))->sin_addr.s_addr;
		repeater[i].rpt_addr_00.sin_family = AF_INET;
		repeater[i].rpt_addr_01.sin_family = AF_INET;
		repeater[i].rpt_addr_00.sin_port = htons(64000);
		repeater[i].rpt_addr_01.sin_port = htons(64001);
		
		freeaddrinfo(result);
		std::cout << std::endl << std::endl;
		std::cout << "Repeater " << r_list[i] << " address: " 
			<< inet_ntoa(repeater[i].rpt_addr_00.sin_addr) << std::endl << std::endl;

		// Parse out the talkgroups

		key.assign(elems[i]);
		key.append(".tg_list");
		tg = pt.get<std::string>(key).c_str();

		boost::split(tg_elems, tg, boost::is_any_of("\t ,"), boost::token_compress_on);
	
		repeater[i].tg_list = (int *)calloc(tg_elems.size()+1,sizeof(int));
		std::cout << "Talkgroups " << tg_elems.size() << std::endl; 
		std::cout << "Repeater " << r_list[i] << "  Talkgroups: ";

		for(j = 0; j < tg_elems.size(); j++)
		{
			repeater[i].tg_list[j] = atoi(tg_elems[j].c_str());
			std::cout << " " << repeater[i].tg_list[j];

		}
		std::cout << std::endl;

		// Do the same for the tactical list

		key.assign(elems[i]);
		key.append(".tac_list");
		tg = pt.get<std::string>(key).c_str();

		boost::split(tg_elems, tg, boost::is_any_of("\t ,"), boost::token_compress_on);
	
		repeater[i].tac_list = (int *)calloc(tg_elems.size()+1,sizeof(int));
		std::cout << "Tactical Talkgroups " << tg_elems.size() << std::endl; 
		std::cout << "Repeater " << i << "  Tactical Talkgroup List: ";

		for(j = 0; j < tg_elems.size(); j++)
		{
			repeater[i].tac_list[j] = atoi(tg_elems[j].c_str());
			std::cout << " " << repeater[i].tac_list[j];

		}


		std::cout << std::endl << std::endl;
		repeater[i].tx_ran = pt.get<int>(elems[i] + ".tx_ran");
		repeater[i].rx_ran = pt.get<int>(elems[i] + ".rx_ran");
		repeater[i].hold_time = pt.get<int>(elems[i] + ".rx_hold_time");
		repeater[i].time_since_rx = repeater[i].hold_time;
		repeater[i].stealth = pt.get<int>(elems[i] + ".stealth");
		repeater[i].tx_hold_time = pt.get<int>(elems[i] + ".tx_hold_time");
		repeater[i].time_since_tx = repeater[i].tx_hold_time;
		repeater[i].tx_otaa = pt.get<int>(elems[i] + ".tx_otaa");

                try {
                        repeater[i].tg_network_off = pt.get<int>(elems[i] + ".tg_network_off");
                        repeater[i].tg_network_on = pt.get<int>(elems[i] + ".tg_network_on");
                }
                catch(const boost::property_tree::ptree_error &e)
                {
                        repeater[i].tg_network_off = 0;
                        repeater[i].tg_network_on = 0;
                }
		
		try {
			repeater[i].msg_flag = pt.get<int>(elems[i] + ".msg_flag");
		}
		catch(const boost::property_tree::ptree_error &e)
		{
			repeater[i].msg_flag = 0;
		}

	}

	//

	tx_sem = 0;
	tx_busy_sem = 0;

	// start the threads


	pthread_t l_thread;
	pthread_t t_thread;

	if(pthread_create(&l_thread, NULL, listen_thread, (void *)0))  {
		fprintf(stderr, "Problem creating thread.  Exiting\n");
		return 1; 
	}
	
	if(pthread_create(&t_thread, NULL, timing_thread, (void *)0))  {
		fprintf(stderr, "Problem creating thread.  Exiting\n");
		return 1; 
	}

	int counter = 0;


	while(1==1)
	{
	
		sleep(10);
		counter++;

		if (counter > 90)
		{
			while(tx_sem==1)
				usleep(1);
			tx_sem = 1;
		
			for (i = 0; i < (unsigned int)repeater_count; i++)
			{
                       		if(getaddrinfo(repeater[i].hostname, NULL, &hints, &result) == 0)
                        	{
                                	repeater[i].rpt_addr_00.sin_addr.s_addr = ((struct sockaddr_in *)(result->ai_addr))->sin_addr.s_addr;
                                	repeater[i].rpt_addr_01.sin_addr.s_addr = ((struct sockaddr_in *)(result->ai_addr))->sin_addr.s_addr;
				freeaddrinfo(result);
                        	}
			}
			tx_sem = 0;
		counter = 0;
		}

	}
	pthread_exit(NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1f8, %rsp            # imm = 0x1F8
movq %rsi, %rbx
movl %edi, %r14d
leaq -0x110(%rbp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movl $0x20, %edi
callq 0x4300
movq %rax, %r15
movl $0x70, %edi
callq 0x4300
movq %rax, 0x8(%r15)
leaq 0x48(%rax), %rcx
xorl %edx, %edx
movq %rdx, 0x48(%rax)
movq %rcx, 0x50(%rax)
movq %rcx, 0x58(%rax)
movq %rax, %rcx
addq $0x60, %rcx
movq %rcx, 0x68(%rax)
movq %rcx, 0x60(%rax)
movq %rdx, 0x18(%r15)
movq %r15, -0x100(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8e16(%rip), %rsi      # 0xf383
leaq 0x8e19(%rip), %rdx      # 0xf38d
leaq -0x78(%rbp), %rdi
callq 0x8a20
leaq -0x170(%rbp), %r15
movq %r15, %rdi
callq 0x45d0
leaq -0x78(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %r15, %rdx
callq 0x8496
leaq -0x170(%rbp), %rdi
callq 0x4440
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x65c4
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
cmpl $0x1, %r14d
jle 0x65e8
movq 0x8(%rbx), %rdi
leaq 0x8dd0(%rip), %rsi      # 0xf3a5
callq 0x4420
testl %eax, %eax
jne 0x65e8
movl $0x1, 0xedf4(%rip)      # 0x153dc
leaq 0xed11(%rip), %r14      # 0x15300
movq %r14, %rdi
callq 0x4120
movq 0xe9d2(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4370
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq 0xe9a6(%rip), %rdi      # 0x14fd0
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0xecf2(%rip), %r14      # 0x15330
movq %r14, %rdi
callq 0x4120
movq 0xe983(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4370
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq 0xe957(%rip), %rdi      # 0x14fd0
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
leaq 0x8ce6(%rip), %rsi      # 0xf3a8
leaq 0x8ce8(%rip), %rdx      # 0xf3b1
callq 0x8a20
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xba9c
leaq -0x170(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6711
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0x140(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb $0x0, (%rcx)
movq %rax, -0xa0(%rbp)
xorps %xmm0, %xmm0
movaps %xmm0, -0xb0(%rbp)
movq %rax, -0xc0(%rbp)
movaps %xmm0, -0xd0(%rbp)
leaq 0x8c67(%rip), %rax      # 0xf3b2
leaq -0x78(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x8c5c(%rip), %rax      # 0xf3b5
movq %rax, 0x8(%rsi)
leaq -0x1b8(%rbp), %rdi
callq 0xcf00
leaq -0xb0(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x86cb
cmpq $0x11, -0x1a8(%rbp)
jb 0x67a0
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x67a0
callq 0x43d0
movq -0xa8(%rbp), %rax
subq -0xb0(%rbp), %rax
shrq $0x5, %rax
movl %eax, 0xec20(%rip)      # 0x153d8
movq 0xe811(%rip), %rdi      # 0x14fd0
leaq 0x8bf0(%rip), %rsi      # 0xf3b6
movl $0x11, %edx
callq 0x4370
movl 0xec02(%rip), %esi      # 0x153d8
movq 0xe7f3(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
callq 0x4520
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
leaq 0xeba0(%rip), %rdi      # 0x153e0
leaq -0xb0(%rbp), %rsi
callq 0x884e
movslq 0xeb85(%rip), %rdi      # 0x153d8
movl $0x90, %esi
callq 0x41d0
movq %rax, 0xeb6c(%rip)      # 0x153d0
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
leaq 0x8b52(%rip), %rsi      # 0xf3c8
leaq 0x8b51(%rip), %rdx      # 0xf3ce
callq 0x8a20
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xba9c
leaq -0xf0(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
leaq -0xe0(%rbp), %r14
movq -0x10(%r14), %rdi
callq 0x4310
movl %eax, 0xeb36(%rip)      # 0x153f8
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x68da
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x68f3
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movl 0xeaff(%rip), %eax      # 0x153f8
movl %eax, %ecx
shrl $0x18, %ecx
movl %eax, %edx
shrl $0x10, %edx
movb %cl, 0xea7b(%rip)       # 0x15384
movb %dl, 0xea76(%rip)       # 0x15385
movb %ah, 0xea71(%rip)       # 0x15386
movb %al, 0xea6c(%rip)       # 0x15387
bswapl %eax
movl %eax, 0xea41(%rip)      # 0x15364
leaq -0xe0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq $0x0, -0xe8(%rbp)
movb $0x0, -0xe0(%rbp)
movq -0xb0(%rbp), %rsi
cmpq %rsi, -0xa8(%rbp)
jne 0x6a5a
xorl %eax, %eax
movl %eax, 0xeaa5(%rip)      # 0x15404
movl %eax, 0xeaa3(%rip)      # 0x15408
leaq -0x2128(%rip), %rdx     # 0x4844
leaq -0x78(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4560
testl %eax, %eax
jne 0x699c
leaq -0x7a4(%rip), %rdx      # 0x61e0
xorl %r15d, %r15d
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4560
testl %eax, %eax
je 0x7da1
movq 0xe635(%rip), %rax      # 0x14fd8
movq (%rax), %rcx
leaq 0x8b0b(%rip), %rdi      # 0xf4b8
movl $0x22, %esi
movl $0x1, %edx
callq 0x45c0
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x69de
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0xd0(%rbp), %rdi
callq 0x8286
leaq -0xb0(%rbp), %rdi
callq 0x8286
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x6a18
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0x160(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6a37
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0x120(%rbp), %rdi
callq 0x89dc
movl $0x1, %eax
addq $0x1f8, %rsp            # imm = 0x1F8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r12d, %r12d
movq %r12, -0xf8(%rbp)
shlq $0x5, %r12
movq %r12, -0x80(%rbp)
addq %r12, %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4180
leaq -0x120(%rbp), %r12
leaq -0xf0(%rbp), %rdi
leaq 0x893f(%rip), %rsi      # 0xf3cf
callq 0x45b0
xorps %xmm0, %xmm0
movaps %xmm0, -0x1f0(%rbp)
movaps %xmm0, -0x1d0(%rbp)
movaps %xmm0, -0x1e0(%rbp)
movl $0x2, -0x1ec(%rbp)
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0xba9c
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r14
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6b1c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
movq -0xf8(%rbp), %r13
je 0x6b3c
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
incl %r14d
movslq %r14d, %r14
movl $0x1, %edi
movq %r14, %rsi
callq 0x41d0
movq 0xe87a(%rip), %rcx      # 0x153d0
movq %r13, %rdx
shlq $0x4, %rdx
leaq (%rdx,%rdx,8), %rdx
movq %rax, 0x20(%rcx,%rdx)
movq 0xe863(%rip), %rax      # 0x153d0
movq 0x20(%rax,%rdx), %r15
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r12
movq %r12, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r12, %rsi
callq 0xba9c
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x48(%rbp), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x42a0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6be6
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6bff
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq 0xe7ca(%rip), %rax      # 0x153d0
leaq (%r13,%r13,8), %r13
shlq $0x4, %r13
movq 0x20(%rax,%r13), %rdi
xorl %esi, %esi
leaq -0x1f0(%rbp), %rdx
leaq -0x130(%rbp), %rcx
callq 0x43c0
cmpl $-0x1, %eax
je 0x7cf7
movq -0x130(%rbp), %rdi
movq 0x18(%rdi), %rax
movl 0x4(%rax), %ecx
movq 0xe789(%rip), %rdx      # 0x153d0
movl %ecx, 0x4(%rdx,%r13)
movl 0x4(%rax), %eax
movl %eax, 0x14(%rdx,%r13)
movl $0xfa0002, (%rdx,%r13)  # imm = 0xFA0002
movl $0x1fa0002, 0x10(%rdx,%r13) # imm = 0x1FA0002
callq 0x43f0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x851d(%rip), %rsi      # 0xf1e7
callq 0x4370
movq 0xe70a(%rip), %rax      # 0x153e0
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
movq %rbx, %rdi
callq 0x4370
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x86f6(%rip), %rsi      # 0xf3f3
callq 0x4370
movq 0xe6c7(%rip), %rax      # 0x153d0
movl 0x4(%rax,%r13), %edi
callq 0x4130
testq %rax, %rax
je 0x6d33
movq %rax, %r15
movq %rax, %rdi
callq 0x4120
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x4370
jmp 0x6d4d
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r14, %rdi
addq %rax, %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x44f0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq -0xb0(%rbp), %rsi
addq -0x80(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4180
leaq -0xf0(%rbp), %rdi
leaq 0x863b(%rip), %rsi      # 0xf3fe
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x48(%rbp), %r14
movq -0x148(%rbp), %r15
movq %r14, %rdi
callq 0x4120
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4490
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6e57
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x6e74
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
leaq 0x8537(%rip), %rax      # 0xf3b2
movq %rax, -0x78(%rbp)
leaq 0x852f(%rip), %rax      # 0xf3b5
movq %rax, -0x70(%rbp)
leaq -0x1a0(%rbp), %rdi
movq %r14, %rsi
callq 0xcf00
leaq -0xd0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
xorl %ecx, %ecx
callq 0x86cb
cmpq $0x11, -0x190(%rbp)
jb 0x6ed0
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x6ed0
callq 0x43d0
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41d0
movq 0xe4da(%rip), %rcx      # 0x153d0
movq %rax, 0x58(%rcx,%r13)
movl $0xb, %edx
movq %rbx, %rdi
leaq 0x851f(%rip), %rsi      # 0xf429
callq 0x4370
movq -0xc8(%rbp), %rsi
subq -0xd0(%rbp), %rsi
sarq $0x5, %rsi
movq %rbx, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x8285(%rip), %rsi      # 0xf1e7
callq 0x4370
movq 0xe472(%rip), %rax      # 0x153e0
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
movq %rbx, %rdi
callq 0x4370
movl $0xe, %edx
movq %rax, %rdi
leaq 0x8475(%rip), %rsi      # 0xf407
callq 0x4370
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x701c
movl $0x1, %r14d
xorl %r15d, %r15d
movq %r15, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rdi
callq 0x44a0
movq 0xe409(%rip), %rcx      # 0x153d0
movq 0x58(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x83e7(%rip), %rsi      # 0xf3c6
callq 0x4370
movq 0xe3e5(%rip), %rax      # 0x153d0
movq 0x58(%rax,%r13), %rax
movl (%rax,%r15,4), %esi
movq %rbx, %rdi
callq 0x4520
movl %r14d, %r15d
movq -0xd0(%rbp), %rax
movq -0xc8(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
incl %r14d
cmpq %r15, %rcx
ja 0x6fb0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq -0xb0(%rbp), %rsi
addq -0x80(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4180
leaq -0xf0(%rbp), %rdi
leaq 0x83ae(%rip), %rsi      # 0xf416
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x48(%rbp), %r14
movq -0x148(%rbp), %r15
movq %r14, %rdi
callq 0x4120
leaq -0x150(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4490
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x70fc
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x7119
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
leaq 0x8292(%rip), %rax      # 0xf3b2
movq %rax, -0x78(%rbp)
leaq 0x828a(%rip), %rax      # 0xf3b5
movq %rax, -0x70(%rbp)
leaq -0x188(%rbp), %rdi
movq %r14, %rsi
callq 0xcf00
leaq -0xd0(%rbp), %rdi
leaq -0x150(%rbp), %rsi
leaq -0x188(%rbp), %rdx
xorl %ecx, %ecx
callq 0x86cb
cmpq $0x11, -0x178(%rbp)
jb 0x7175
movq -0x188(%rbp), %rdi
testq %rdi, %rdi
je 0x7175
callq 0x43d0
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41d0
movq 0xe235(%rip), %rcx      # 0x153d0
movq %rax, 0x60(%rcx,%r13)
movl $0x14, %edx
movq %rbx, %rdi
leaq 0x8271(%rip), %rsi      # 0xf420
callq 0x4370
movq -0xc8(%rbp), %rsi
subq -0xd0(%rbp), %rsi
sarq $0x5, %rsi
movq %rbx, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x7fe0(%rip), %rsi      # 0xf1e7
callq 0x4370
movq %rbx, %rdi
movq -0xf8(%rbp), %rsi
callq 0x41e0
movl $0x1b, %edx
movq %rax, %rdi
leaq 0x820b(%rip), %rsi      # 0xf435
callq 0x4370
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x72b4
movl $0x1, %r14d
xorl %r15d, %r15d
movq %r15, %rcx
shlq $0x5, %rcx
movq (%rax,%rcx), %rdi
callq 0x44a0
movq 0xe171(%rip), %rcx      # 0x153d0
movq 0x60(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x814f(%rip), %rsi      # 0xf3c6
callq 0x4370
movq 0xe14d(%rip), %rax      # 0x153d0
movq 0x60(%rax,%r13), %rax
movl (%rax,%r15,4), %esi
movq %rbx, %rdi
callq 0x4520
movl %r14d, %r15d
movq -0xd0(%rbp), %rax
movq -0xc8(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
incl %r14d
cmpq %r15, %rcx
ja 0x7248
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42f0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41f0
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x8117(%rip), %rsi      # 0xf451
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
leaq -0x88(%rbp), %r12
movq %r12, %rdi
callq 0x45d0
leaq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xe00e(%rip), %rax      # 0x153d0
movb %r14b, 0x48(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x73e0
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x73f9
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x802b(%rip), %rsi      # 0xf459
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r12, %rdi
callq 0x45d0
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xdf28(%rip), %rax      # 0x153d0
movb %r14b, 0x49(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x74c6
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x74df
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7f4d(%rip), %rsi      # 0xf461
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r12, %rdi
callq 0x45d0
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xde42(%rip), %rax      # 0x153d0
movl %r14d, 0x30(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x75ac
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x75c5
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq 0xde04(%rip), %rax      # 0x153d0
movl 0x30(%rax,%r13), %ecx
movl %ecx, 0x28(%rax,%r13)
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7e64(%rip), %rsi      # 0xf46f
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r12, %rdi
callq 0x45d0
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xdd4b(%rip), %rax      # 0x153d0
movl %r14d, 0x44(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x76a3
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x76bc
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7d87(%rip), %rsi      # 0xf478
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r12, %rdi
callq 0x45d0
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xdc65(%rip), %rax      # 0x153d0
movl %r14d, 0x34(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7789
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x77a2
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq 0xdc27(%rip), %rax      # 0x153d0
movl 0x34(%rax,%r13), %ecx
movl %ecx, 0x2c(%rax,%r13)
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7c9e(%rip), %rsi      # 0xf486
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r12, %rdi
callq 0x45d0
movq %r15, %rdi
movq %r12, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r15, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r15, %rdi
callq 0x4440
movq %r12, %rdi
callq 0x4440
movq 0xdb6e(%rip), %rax      # 0x153d0
movl %r14d, 0x70(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7880
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x1f8(%rbp), %r15
leaq -0x200(%rbp), %r12
je 0x78a7
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7bb3(%rip), %rsi      # 0xf48f
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
movq %r15, %rdi
callq 0x45d0
movq %r12, %rdi
movq %r15, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r12, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r12, %rdi
callq 0x4440
movq %r15, %rdi
callq 0x4440
movq 0xda7a(%rip), %rax      # 0x153d0
movl %r14d, 0x84(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7977
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7990
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x7ada(%rip), %rsi      # 0xf49f
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
leaq -0x208(%rbp), %r15
movq %r15, %rdi
callq 0x45d0
leaq -0x210(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r12, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r12, %rdi
callq 0x4440
movq %r15, %rdi
callq 0x4440
movq 0xd983(%rip), %rax      # 0x153d0
movl %r14d, 0x80(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7a6e
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7a87
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0xb0(%rbp), %rax
leaq -0x38(%rbp), %rcx
movq %rcx, -0x48(%rbp)
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
addq %rsi, %rdx
leaq -0x48(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movq %r14, %rdi
leaq 0x79f2(%rip), %rsi      # 0xf4ae
callq 0x45b0
leaq -0x68(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
addq %rsi, %rdx
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x8aba
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xba9c
movq %rax, %r14
leaq -0x218(%rbp), %r15
movq %r15, %rdi
callq 0x45d0
leaq -0x220(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x41a0
movq %r14, %rdi
movq %r12, %rsi
callq 0xeb20
movl %eax, %r14d
movq %r12, %rdi
callq 0x4440
movq %r15, %rdi
callq 0x4440
movq 0xd88c(%rip), %rax      # 0x153d0
movl %r14d, 0x88(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7b65
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
movq -0xf8(%rbp), %r12
je 0x7b85
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
incl %r12d
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r12, %rax
ja 0x6a5d
jmp 0x6957
jmp 0x7bdb
jmp 0x7c1f
jmp 0x7c65
jmp 0x7c65
jmp 0x7cc2
movq %rdx, -0x80(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x4440
movq %r15, %rdi
movq -0x80(%rbp), %r15
callq 0x4440
jmp 0x7c04
movq %rdx, -0x128(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x4440
movq %r15, %rdi
movq -0x128(%rbp), %r15
callq 0x4440
jmp 0x7c25
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7c4a
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x7c4a
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7c6b
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x7c6b
jmp 0x7c44
jmp 0x7c65
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7c8c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x7c8c
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7cc8
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x7cc8
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x80f9
movq %r14, %rdi
callq 0x4100
movq 0xd72b(%rip), %rax      # 0x153d0
movl $0x0, 0x88(%rax,%r13)
callq 0x44d0
movq -0xf8(%rbp), %r12
jmp 0x7b85
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x80f9
movq %r14, %rdi
callq 0x4100
movq 0xd6ef(%rip), %rax      # 0x153d0
movq $0x0, 0x80(%rax,%r13)
callq 0x44d0
jmp 0x7a87
movq 0xd2d2(%rip), %rdi      # 0x14fd0
leaq 0x76d3(%rip), %rsi      # 0xf3d8
movl $0x10, %edx
callq 0x4370
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
callq 0x8aba
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xba9c
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xc7e8
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0xd26a(%rip), %rdi      # 0x14fd0
callq 0x4370
movq %rax, %rbx
leaq 0x7674(%rip), %rsi      # 0xf3e9
movl $0x9, %edx
movq %rax, %rdi
callq 0x4370
movq %rbx, %rdi
callq 0x4150
leaq -0x48(%rbp), %rdi
callq 0x4140
leaq -0x78(%rbp), %rdi
callq 0x86aa
jmp 0x7f22
leaq -0x1f0(%rbp), %rbx
leaq -0x130(%rbp), %r14
movl $0xa, %edi
callq 0x4260
leal 0x1(%r15), %eax
cmpl $0x5a, %r15d
movl %eax, %r15d
jl 0x7daf
cmpl $0x1, 0xd637(%rip)      # 0x15404
jne 0x7ddb
movl $0x1, %edi
callq 0x4450
jmp 0x7dc6
movl $0x1, 0xd61f(%rip)      # 0x15404
cmpl $0x0, 0xd5ec(%rip)      # 0x153d8
je 0x7e4d
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0xd5d5(%rip), %rax      # 0x153d0
movq 0x20(%rax,%r15), %rdi
xorl %esi, %esi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x43c0
testl %eax, %eax
jne 0x7e38
movq -0x130(%rbp), %rdi
movq 0x18(%rdi), %rax
movl 0x4(%rax), %ecx
movq 0xd5aa(%rip), %rdx      # 0x153d0
movl %ecx, 0x4(%rdx,%r15)
movl 0x4(%rax), %eax
movl %eax, 0x14(%rdx,%r15)
callq 0x43f0
incq %r12
movl 0xd597(%rip), %eax      # 0x153d8
addq $0x90, %r15
cmpq %rax, %r12
jb 0x7df4
movl $0x0, 0xd5ad(%rip)      # 0x15404
xorl %r15d, %r15d
jmp 0x7daf
jmp 0x80f6
jmp 0x80f6
jmp 0x80f6
jmp 0x80f6
jmp 0x80f6
jmp 0x80aa
jmp 0x7fc3
movq %rax, %r14
cmpq $0x11, -0x1a8(%rbp)
jb 0x811b
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x811b
callq 0x43d0
jmp 0x811b
jmp 0x7fcb
movq %rdx, %rbx
movq %rax, %r14
leaq -0x170(%rbp), %rdi
callq 0x4440
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7ee5
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x7ee5
movq %rdx, %rbx
movq %rax, %r14
cmpl $0x1, %ebx
jne 0x8174
movq %r14, %rdi
callq 0x4100
movq 0xd0d3(%rip), %rdi      # 0x14fd0
leaq 0x748a(%rip), %rsi      # 0xf38e
movl $0x16, %edx
callq 0x4370
movq 0xd0bb(%rip), %rdi      # 0x14fd0
callq 0x4150
movq %rax, %rdi
callq 0x4150
movl $0x1, %edi
callq 0x4390
movq %rax, %r14
callq 0x44d0
jmp 0x8174
movq %rax, %rdi
callq 0x869c
movq %rax, %r14
movl $0x20, %esi
movq %r15, %rdi
callq 0x4320
jmp 0x7f56
movq %rax, %r14
movq -0x120(%rbp), %rdi
cmpq %r12, %rdi
je 0x8180
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x8180
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x811b
movq -0x68(%rbp), %rsi
jmp 0x8113
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x8174
movq -0x68(%rbp), %rsi
jmp 0x816c
jmp 0x80d4
jmp 0x80f6
jmp 0x80f6
movq %rax, %r14
jmp 0x811b
movq %rax, %r14
jmp 0x8174
jmp 0x8019
jmp 0x8051
jmp 0x8014
jmp 0x80f6
jmp 0x8051
jmp 0x8019
jmp 0x8014
jmp 0x8051
jmp 0x8051
jmp 0x80f6
jmp 0x8019
jmp 0x8051
jmp 0x8014
jmp 0x8051
jmp 0x80f6
jmp 0x8014
jmp 0x8019
jmp 0x8051
jmp 0x8051
jmp 0x8019
jmp 0x80f6
jmp 0x8051
jmp 0x8014
jmp 0x8051
jmp 0x80f6
movq %rax, %r14
jmp 0x8034
movq %rax, %r14
leaq -0x90(%rbp), %rdi
callq 0x4440
leaq -0x88(%rbp), %rdi
callq 0x4440
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x8054
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x8054
jmp 0x8051
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x80f9
movq -0x38(%rbp), %rsi
jmp 0x80e8
jmp 0x80f6
movq %rax, %r14
cmpq $0x11, -0x178(%rbp)
jb 0x80f9
movq -0x188(%rbp), %rdi
jmp 0x809e
jmp 0x80aa
jmp 0x80f6
movq %rax, %r14
cmpq $0x11, -0x190(%rbp)
jb 0x80f9
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x80f9
callq 0x43d0
jmp 0x80f9
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x80d7
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x80d7
jmp 0x80f6
jmp 0x80f6
jmp 0x80f6
jmp 0x80d4
jmp 0x80d4
jmp 0x80d4
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x80f9
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x4320
jmp 0x80f9
jmp 0x80f6
jmp 0x80f6
movq %rax, %r14
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x811b
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0xd0(%rbp), %rdi
callq 0x8286
leaq -0xb0(%rbp), %rdi
callq 0x8286
movq -0x150(%rbp), %rdi
leaq -0x140(%rbp), %rax
cmpq %rax, %rdi
je 0x8155
movq -0x140(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0x160(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8174
movq -0x160(%rbp), %rsi
incq %rsi
callq 0x4320
leaq -0x120(%rbp), %rdi
callq 0x89dc
movq %r14, %rdi
callq 0x4530