// File: /workspace/github_cpp_makefile_star2_O3/rthoelen[P]NXCore_Icom/main.cc
// Function: main
int main(int argc, char *argv[])
{
    int i, j, 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;
	}

	// 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;

	std::cout << version << std::endl;
	std::cout << copyright << std::endl << std::endl;
	
	// Split by space or tab
	boost::split(elems, s, boost::is_any_of("\t "), boost::token_compress_on);


	r_list = elems;

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

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


	/* For Icom we don't need this (at least yet)

	unsigned int tempaddr;

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

	*/

	tx_busy_sem = 0;

	// 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_00.sin_family = AF_INET;
		repeater[i].rpt_addr_00.sin_port = htons(41300);

		std::cout << std::endl << std::endl;
		std::cout << "Repeater " << elems[i] << " address: " << inet_ntoa(repeater[i].rpt_addr_00.sin_addr) << std::endl << std::endl;

		freeaddrinfo(result);
		// 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 = (unsigned int *)calloc(tg_elems.size()+1,sizeof(int));
		std::cout << "Talkgroups " << tg_elems.size() << std::endl; 
		std::cout << "Repeater " << elems[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 = (unsigned 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].tx_hold_time = pt.get<int>(elems[i] + ".tx_hold_time");
		repeater[i].time_since_tx = repeater[i].tx_hold_time;
		repeater[i].stealth = pt.get<int>(elems[i] + ".stealth");
		repeater[i].tx_otaa = pt.get<int>(elems[i] + ".tx_otaa");

		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;
		}	
		
		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;
		}	
		

	}


	// start the thread

	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)
                {
                        for (i = 0; i < 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;
					freeaddrinfo(result);
                                }
                        }
                counter = 0;
                }

	}
	pthread_exit(NULL);
	free(repeater);
}

// 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 0x42c0
movq %rax, %r15
movl $0x70, %edi
callq 0x42c0
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 0x93d6(%rip), %rsi      # 0xf289
leaq 0x93d9(%rip), %rdx      # 0xf293
leaq -0x78(%rbp), %rdi
callq 0x8076
leaq -0x168(%rbp), %r15
movq %r15, %rdi
callq 0x4560
leaq -0x78(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %r15, %rdx
callq 0x7acb
leaq -0x168(%rbp), %rdi
callq 0x43f0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x5f0a
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
cmpl $0x1, %r14d
jle 0x5f2f
movq 0x8(%rbx), %rax
cmpb $0x2d, (%rax)
jne 0x5f2f
cmpb $0x64, 0x1(%rax)
jne 0x5f2f
cmpb $0x0, 0x2(%rax)
jne 0x5f2f
movl $0x1, 0xf44d(%rip)      # 0x1537c
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
leaq 0x936a(%rip), %rsi      # 0xf2ab
leaq 0x936c(%rip), %rdx      # 0xf2b4
callq 0x8076
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xb0a0
leaq -0x168(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x5f90
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x138(%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 0xf306(%rip), %r14      # 0x152d0
movq %r14, %rdi
callq 0x4110
movq 0xeff7(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq 0xefcb(%rip), %rdi      # 0x14fd0
callq 0x4040
movq %rax, %rdi
callq 0x41e0
leaq 0xf2e7(%rip), %r14      # 0x15300
movq %r14, %rdi
callq 0x4110
movq 0xefa8(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
movq %r14, %rsi
movq %rax, %rdx
callq 0x4330
movq (%rbx), %rax
addq -0x18(%rax), %rbx
movq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq 0xef7c(%rip), %rdi      # 0x14fd0
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
leaq 0x9223(%rip), %rax      # 0xf2b5
leaq -0x78(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x9217(%rip), %rax      # 0xf2b7
movq %rax, 0x8(%rsi)
leaq -0x1b8(%rbp), %rdi
callq 0xc4ec
leaq -0xb0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7d01
cmpq $0x11, -0x1a8(%rbp)
jb 0x60e7
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x60e7
callq 0x4390
leaq 0xf272(%rip), %rdi      # 0x15360
leaq -0xb0(%rbp), %rsi
callq 0x7e84
movq -0xa8(%rbp), %rax
subq -0xb0(%rbp), %rax
shrq $0x5, %rax
movl %eax, 0xf266(%rip)      # 0x15378
movq 0xeeb7(%rip), %rdi      # 0x14fd0
leaq 0x9198(%rip), %rsi      # 0xf2b8
movl $0x11, %edx
callq 0x4330
movl 0xf248(%rip), %esi      # 0x15378
movq 0xee99(%rip), %rbx      # 0x14fd0
movq %rbx, %rdi
callq 0x44c0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movslq 0xf1de(%rip), %rdi      # 0x15378
movl $0x70, %esi
callq 0x41c0
movq %rax, 0xf1ad(%rip)      # 0x15358
movl $0x0, 0xf1cf(%rip)      # 0x15384
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
movq -0xb0(%rbp), %rsi
cmpq %rsi, -0xa8(%rbp)
jne 0x62d4
leaq -0x1a5f(%rip), %rdx     # 0x4787
leaq -0x78(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4500
testl %eax, %eax
jne 0x6216
leaq -0x522(%rip), %rdx      # 0x5cdc
xorl %r15d, %r15d
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4500
testl %eax, %eax
je 0x75d6
movq 0xedbb(%rip), %rax      # 0x14fd8
movq (%rax), %rcx
leaq 0x919a(%rip), %rdi      # 0xf3c1
movl $0x22, %esi
movl $0x1, %edx
callq 0x4550
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x6258
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0xd0(%rbp), %rdi
callq 0x7a5e
leaq -0xb0(%rbp), %rdi
callq 0x7a5e
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x6292
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x62b1
movq -0x158(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x120(%rbp), %rdi
callq 0x8032
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, -0x128(%rbp)
shlq $0x5, %r12
movq %r12, -0x80(%rbp)
addq %r12, %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4170
leaq -0x120(%rbp), %r12
leaq -0xf0(%rbp), %rdi
leaq 0x8fc0(%rip), %rsi      # 0xf2ca
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0xb0a0
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r14
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6396
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x63af
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
incl %r14d
movslq %r14d, %r14
movl $0x1, %edi
movq %r14, %rsi
callq 0x41c0
movq 0xef8f(%rip), %rcx      # 0x15358
imulq $0x70, -0x128(%rbp), %r13
movq %rax, 0x10(%rcx,%r13)
movq 0xef7b(%rip), %rax      # 0x15358
movq 0x10(%rax,%r13), %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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r12, %rsi
callq 0xb0a0
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x48(%rbp), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x4270
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6456
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x646f
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xeee2(%rip), %rax      # 0x15358
movq 0x10(%rax,%r13), %rdi
xorl %esi, %esi
leaq -0x1f0(%rbp), %rdx
leaq -0xf8(%rbp), %rcx
callq 0x4380
cmpl $-0x1, %eax
je 0x752c
movq -0xf8(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %eax
movq 0xeeaa(%rip), %rcx      # 0x15358
movl %eax, 0x4(%rcx,%r13)
movl $0x54a10002, (%rcx,%r13) # imm = 0x54A10002
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x8dd3(%rip), %rsi      # 0xf2ee
callq 0x4330
movq -0xb0(%rbp), %rax
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
movq %rbx, %rdi
callq 0x4330
movq %rax, %r14
movl $0xa, %edx
movq %rax, %rdi
leaq 0x8daa(%rip), %rsi      # 0xf2f8
callq 0x4330
movq 0xedfe(%rip), %rax      # 0x15358
movl 0x4(%rax,%r13), %edi
callq 0x4120
testq %rax, %rax
je 0x6584
movq %rax, %r15
movq %rax, %rdi
callq 0x4110
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x659e
movq (%r14), %rax
movq -0x18(%rax), %rax
movq %r14, %rdi
addq %rax, %rdi
movl 0x20(%r14,%rax), %esi
orl $0x1, %esi
callq 0x44a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq -0xf8(%rbp), %rdi
callq 0x43b0
movq -0xb0(%rbp), %rsi
addq -0x80(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4170
leaq -0xf0(%rbp), %rdi
leaq 0x8ce3(%rip), %rsi      # 0xf303
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x48(%rbp), %r14
movq -0x140(%rbp), %r15
movq %r14, %rdi
callq 0x4110
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4440
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x66b4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x66d1
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq 0x8bdd(%rip), %rax      # 0xf2b5
movq %rax, -0x78(%rbp)
leaq 0x8bd4(%rip), %rax      # 0xf2b7
movq %rax, -0x70(%rbp)
leaq -0x1a0(%rbp), %rdi
movq %r14, %rsi
callq 0xc4ec
leaq -0xd0(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7d01
cmpq $0x11, -0x190(%rbp)
jb 0x672d
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x672d
callq 0x4390
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41c0
movq 0xec05(%rip), %rcx      # 0x15358
movq %rax, 0x40(%rcx,%r13)
movl $0xb, %edx
movq %rbx, %rdi
leaq 0x8bcb(%rip), %rsi      # 0xf332
callq 0x4330
movq -0xc8(%rbp), %rsi
subq -0xd0(%rbp), %rsi
sarq $0x5, %rsi
movq %rbx, %rdi
callq 0x41d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x8b2f(%rip), %rsi      # 0xf2ee
callq 0x4330
movq -0xb0(%rbp), %rax
movq -0x80(%rbp), %rcx
movq (%rax,%rcx), %rsi
movq 0x8(%rax,%rcx), %rdx
movq %rbx, %rdi
callq 0x4330
movl $0xe, %edx
movq %rax, %rdi
leaq 0x8b1d(%rip), %rsi      # 0xf30c
callq 0x4330
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x6870
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rax,%r14), %rdi
callq 0x4450
movq 0xeb3e(%rip), %rcx      # 0x15358
movq 0x40(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x8a84(%rip), %rsi      # 0xf2b6
callq 0x4330
movq 0xeb1a(%rip), %rax      # 0x15358
movq 0x40(%rax,%r13), %rax
movl (%rax,%r15,4), %esi
movq %rbx, %rdi
callq 0x41d0
incq %r15
movq -0xd0(%rbp), %rax
movq -0xc8(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
addq $0x20, %r14
cmpq %r15, %rcx
ja 0x680a
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq -0xb0(%rbp), %rsi
addq -0x80(%rbp), %rsi
leaq -0xf0(%rbp), %rdi
callq 0x4170
leaq -0xf0(%rbp), %rdi
leaq 0x8a5f(%rip), %rsi      # 0xf31b
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x48(%rbp), %r14
movq -0x140(%rbp), %r15
movq %r14, %rdi
callq 0x4110
leaq -0x148(%rbp), %rdi
xorl %esi, %esi
movq %r15, %rdx
movq %r14, %rcx
movq %rax, %r8
callq 0x4440
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6950
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x696d
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq 0x89b1(%rip), %rax      # 0xf325
movq %rax, -0x78(%rbp)
leaq 0x89a9(%rip), %rax      # 0xf328
movq %rax, -0x70(%rbp)
leaq -0x188(%rbp), %rdi
movq %r14, %rsi
callq 0xc4ec
leaq -0xd0(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x188(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7d01
cmpq $0x11, -0x178(%rbp)
jb 0x69c9
movq -0x188(%rbp), %rdi
testq %rdi, %rdi
je 0x69c9
callq 0x4390
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41c0
movq 0xe969(%rip), %rcx      # 0x15358
movq %rax, 0x48(%rcx,%r13)
movl $0x14, %edx
movq %rbx, %rdi
leaq 0x8926(%rip), %rsi      # 0xf329
callq 0x4330
movq -0xc8(%rbp), %rsi
subq -0xd0(%rbp), %rsi
sarq $0x5, %rsi
movq %rbx, %rdi
callq 0x41d0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movl $0x9, %edx
movq %rbx, %rdi
leaq 0x8893(%rip), %rsi      # 0xf2ee
callq 0x4330
movq %rbx, %rdi
movq -0x128(%rbp), %rsi
callq 0x44c0
movl $0x1b, %edx
movq %rax, %rdi
leaq 0x88c0(%rip), %rsi      # 0xf33e
callq 0x4330
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x6aff
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rax,%r14), %rdi
callq 0x4450
movq 0xe8af(%rip), %rcx      # 0x15358
movq 0x48(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x87f5(%rip), %rsi      # 0xf2b6
callq 0x4330
movq 0xe88b(%rip), %rax      # 0x15358
movq 0x48(%rax,%r13), %rax
movl (%rax,%r15,4), %esi
movq %rbx, %rdi
callq 0x41d0
incq %r15
movq -0xd0(%rbp), %rax
movq -0xc8(%rbp), %rcx
subq %rax, %rcx
sarq $0x5, %rcx
addq $0x20, %r14
cmpq %r15, %rcx
ja 0x6a99
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
movq %rax, %r14
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x42b0
movsbl %al, %esi
movq %r14, %rdi
callq 0x4040
movq %rax, %rdi
callq 0x41e0
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 0x8114
movq %r14, %rdi
leaq 0x87d5(%rip), %rsi      # 0xf35a
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
leaq -0x88(%rbp), %r12
movq %r12, %rdi
callq 0x4560
leaq -0x90(%rbp), %r15
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe74b(%rip), %rax      # 0x15358
movb %r14b, 0x34(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6c2b
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6c44
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x86e9(%rip), %rsi      # 0xf362
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe665(%rip), %rax      # 0x15358
movb %r14b, 0x35(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6d11
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6d2a
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x860b(%rip), %rsi      # 0xf36a
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe57f(%rip), %rax      # 0x15358
movl %r14d, 0x20(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6df7
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6e10
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xe541(%rip), %rax      # 0x15358
movl 0x20(%rax,%r13), %ecx
movl %ecx, 0x18(%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 0x8114
movq %r14, %rdi
leaq 0x8522(%rip), %rsi      # 0xf378
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe488(%rip), %rax      # 0x15358
movl %r14d, 0x24(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6eee
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6f07
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xe44a(%rip), %rax      # 0x15358
movl 0x24(%rax,%r13), %ecx
movl %ecx, 0x1c(%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 0x8114
movq %r14, %rdi
leaq 0x8439(%rip), %rsi      # 0xf386
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe391(%rip), %rax      # 0x15358
movl %r14d, 0x58(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6fe5
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6ffe
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x835c(%rip), %rsi      # 0xf38f
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe136
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe2ab(%rip), %rax      # 0x15358
movl %r14d, 0x5c(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x70cb
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
leaq -0x1f8(%rbp), %r15
leaq -0x200(%rbp), %r12
je 0x70f2
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x8271(%rip), %rsi      # 0xf398
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
movq %r15, %rdi
callq 0x4560
movq %r12, %rdi
movq %r15, %rsi
callq 0x4190
movq %r14, %rdi
movq %r12, %rsi
callq 0xe136
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xe1b7(%rip), %rax      # 0x15358
movl %r14d, 0x6c(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x71bf
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x71d8
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x8195(%rip), %rsi      # 0xf3a2
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
leaq -0x208(%rbp), %r15
movq %r15, %rdi
callq 0x4560
leaq -0x210(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x4190
movq %r14, %rdi
movq %r12, %rsi
callq 0xe136
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xe0c3(%rip), %rax      # 0x15358
movl %r14d, 0x68(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x72b3
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x72cc
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
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 0x8114
movq %r14, %rdi
leaq 0x80b1(%rip), %rsi      # 0xf3b2
callq 0x4540
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 0x8114
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb0a0
movq %rax, %r14
leaq -0x218(%rbp), %r15
movq %r15, %rdi
callq 0x4560
leaq -0x220(%rbp), %r12
movq %r12, %rdi
movq %r15, %rsi
callq 0x4190
movq %r14, %rdi
movq %r12, %rsi
callq 0xe136
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xdfcf(%rip), %rax      # 0x15358
movl %r14d, 0x64(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x73a7
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x73c0
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x128(%rbp), %r12
incq %r12
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rax
subq %rsi, %rax
sarq $0x5, %rax
cmpq %r12, %rax
ja 0x62d7
jmp 0x61df
jmp 0x7400
jmp 0x7440
jmp 0x7486
jmp 0x7486
jmp 0x74c8
movq %rdx, -0x80(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
movq -0x80(%rbp), %r15
callq 0x43f0
jmp 0x7446
movq %rdx, -0x170(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
movq -0x170(%rbp), %r15
callq 0x43f0
jmp 0x7467
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x748c
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x748c
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x74ad
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x74ad
jmp 0x7486
jmp 0x74a7
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x74ce
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x74ce
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7500
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7500
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x78d1
movq %r14, %rdi
callq 0x40f0
movq 0xde71(%rip), %rax      # 0x15358
movq $0x0, 0x64(%rax,%r13)
callq 0x4480
jmp 0x73c0
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x78d1
movq %r14, %rdi
callq 0x40f0
movq 0xde3f(%rip), %rax      # 0x15358
movl $0x0, 0x6c(%rax,%r13)
callq 0x4480
jmp 0x71d8
movq 0xda9d(%rip), %rdi      # 0x14fd0
leaq 0x7d99(%rip), %rsi      # 0xf2d3
movl $0x10, %edx
callq 0x4330
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
movq -0xf0(%rbp), %rsi
movq -0xe8(%rbp), %rdx
addq %rsi, %rdx
callq 0x8114
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xb0a0
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbde6
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0xda35(%rip), %rdi      # 0x14fd0
callq 0x4330
movq %rax, %rbx
leaq 0x7d3a(%rip), %rsi      # 0xf2e4
movl $0x9, %edx
movq %rax, %rdi
callq 0x4330
movq %rbx, %rdi
callq 0x4140
leaq -0x48(%rbp), %rdi
callq 0x4130
leaq -0x78(%rbp), %rdi
callq 0x7ce0
jmp 0x7720
leaq -0x1f0(%rbp), %rbx
leaq -0xf8(%rbp), %r14
movl $0xa, %edi
callq 0x4240
leal 0x1(%r15), %eax
cmpl $0x5a, %r15d
movl %eax, %r15d
jl 0x75e4
cmpl $0x0, 0xdd76(%rip)      # 0x15378
movl $0x0, %r15d
jle 0x75e4
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0xdd41(%rip), %rax      # 0x15358
movq 0x10(%rax,%r15), %rdi
xorl %esi, %esi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x4380
testl %eax, %eax
jne 0x764c
movq -0xf8(%rbp), %rdi
movq 0x18(%rdi), %rax
movl 0x4(%rax), %eax
movq 0xdd16(%rip), %rcx      # 0x15358
movl %eax, 0x4(%rcx,%r15)
callq 0x43b0
incq %r12
movslq 0xdd22(%rip), %rax      # 0x15378
addq $0x70, %r15
cmpq %rax, %r12
jl 0x7610
xorl %r15d, %r15d
jmp 0x75e4
jmp 0x78ce
jmp 0x78ce
jmp 0x78ce
jmp 0x78ce
jmp 0x787d
movq %rax, %r14
cmpq $0x11, -0x1a8(%rbp)
jb 0x78f3
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x78f3
callq 0x4390
jmp 0x78f3
movq %rax, %r14
jmp 0x794c
movq %rdx, %rbx
movq %rax, %r14
leaq -0x168(%rbp), %rdi
callq 0x43f0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x76e3
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x76e3
movq %rdx, %rbx
movq %rax, %r14
cmpl $0x1, %ebx
jne 0x794c
movq %r14, %rdi
callq 0x40f0
movq 0xd8d5(%rip), %rdi      # 0x14fd0
leaq 0x7b92(%rip), %rsi      # 0xf294
movl $0x16, %edx
callq 0x4330
movq 0xd8bd(%rip), %rdi      # 0x14fd0
callq 0x4140
movq %rax, %rdi
callq 0x4140
movl $0x1, %edi
callq 0x4350
movq %rax, %r14
callq 0x4480
jmp 0x794c
movq %rax, %rdi
callq 0x7cd1
movq %rax, %r14
movl $0x20, %esi
movq %r15, %rdi
callq 0x42e0
movq -0x120(%rbp), %rdi
cmpq %r12, %rdi
je 0x7958
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7958
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x794c
movq -0x68(%rbp), %rsi
jmp 0x7944
jmp 0x78ac
jmp 0x78ce
jmp 0x78ce
jmp 0x77e5
jmp 0x781d
jmp 0x77e0
jmp 0x78ce
jmp 0x781d
jmp 0x77e5
jmp 0x77e0
jmp 0x781d
jmp 0x781d
jmp 0x78ce
jmp 0x77e5
jmp 0x781d
jmp 0x77e0
jmp 0x781d
jmp 0x78ce
jmp 0x77e0
jmp 0x77e5
jmp 0x781d
jmp 0x781d
jmp 0x77e5
jmp 0x78ce
jmp 0x781d
jmp 0x77e0
jmp 0x781d
jmp 0x78ce
movq %rax, %r14
jmp 0x7800
movq %rax, %r14
leaq -0x90(%rbp), %rdi
callq 0x43f0
leaq -0x88(%rbp), %rdi
callq 0x43f0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7820
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7820
jmp 0x781d
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x78d1
movq -0x38(%rbp), %rsi
jmp 0x78c0
jmp 0x78ce
movq %rax, %r14
cmpq $0x11, -0x178(%rbp)
jb 0x78d1
movq -0x188(%rbp), %rdi
jmp 0x7871
jmp 0x787d
jmp 0x78ce
movq %rax, %r14
cmpq $0x11, -0x190(%rbp)
jb 0x78d1
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x78d1
callq 0x4390
jmp 0x78d1
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x78af
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x78af
jmp 0x78ce
jmp 0x78ce
jmp 0x78ce
movq %rax, %r14
jmp 0x78f3
jmp 0x78ac
jmp 0x78ac
jmp 0x78ac
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x78d1
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x78d1
jmp 0x78ce
jmp 0x78ce
movq %rax, %r14
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x78f3
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0xd0(%rbp), %rdi
callq 0x7a5e
leaq -0xb0(%rbp), %rdi
callq 0x7a5e
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x792d
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x794c
movq -0x158(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x120(%rbp), %rdi
callq 0x8032
movq %r14, %rdi
callq 0x44d0