// File: /workspace/github_cpp_makefile_star2_O1/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 0x9453(%rip), %rsi      # 0xf2a5
leaq 0x9456(%rip), %rdx      # 0xf2af
leaq -0x78(%rbp), %rdi
callq 0x7ff6
leaq -0x168(%rbp), %r15
movq %r15, %rdi
callq 0x4560
leaq -0x78(%rbp), %rdi
leaq -0x120(%rbp), %rsi
movq %r15, %rdx
callq 0x7a6c
leaq -0x168(%rbp), %rdi
callq 0x43f0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x5ea9
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
cmpl $0x1, %r14d
jle 0x5ecd
movq 0x8(%rbx), %rdi
leaq 0x940d(%rip), %rsi      # 0xf2c7
callq 0x43d0
testl %eax, %eax
jne 0x5ecd
movl $0x1, 0xf4af(%rip)      # 0x1537c
leaq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
movq %rax, (%rdi)
leaq 0x93eb(%rip), %rsi      # 0xf2ca
leaq 0x93ed(%rip), %rdx      # 0xf2d3
callq 0x7ff6
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xb072
leaq -0x168(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x5f2e
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 0xf368(%rip), %r14      # 0x152d0
movq %r14, %rdi
callq 0x4110
movq 0xf059(%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 0xf02d(%rip), %rdi      # 0x14fd0
callq 0x4040
movq %rax, %rdi
callq 0x41e0
leaq 0xf349(%rip), %r14      # 0x15300
movq %r14, %rdi
callq 0x4110
movq 0xf00a(%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 0xefde(%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 0x92a4(%rip), %rax      # 0xf2d4
leaq -0x78(%rbp), %rsi
movq %rax, (%rsi)
leaq 0x9298(%rip), %rax      # 0xf2d6
movq %rax, 0x8(%rsi)
leaq -0x1b8(%rbp), %rdi
callq 0xc4d6
leaq -0xb0(%rbp), %rdi
leaq -0x168(%rbp), %rsi
leaq -0x1b8(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7ca1
cmpq $0x11, -0x1a8(%rbp)
jb 0x6085
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x6085
callq 0x4390
leaq 0xf2d4(%rip), %rdi      # 0x15360
leaq -0xb0(%rbp), %rsi
callq 0x7e24
movq -0xa8(%rbp), %rax
subq -0xb0(%rbp), %rax
shrq $0x5, %rax
movl %eax, 0xf2c8(%rip)      # 0x15378
movq 0xef19(%rip), %rdi      # 0x14fd0
leaq 0x9219(%rip), %rsi      # 0xf2d7
movl $0x11, %edx
callq 0x4330
movl 0xf2aa(%rip), %esi      # 0x15378
movq 0xeefb(%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 0xf240(%rip), %rdi      # 0x15378
movl $0x70, %esi
callq 0x41c0
movq %rax, 0xf20f(%rip)      # 0x15358
movl $0x0, 0xf231(%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 0x6272
leaq -0x1a1d(%rip), %rdx     # 0x4767
leaq -0x78(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4500
testl %eax, %eax
jne 0x61b4
leaq -0x504(%rip), %rdx      # 0x5c98
xorl %r15d, %r15d
leaq -0x48(%rbp), %rdi
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x4500
testl %eax, %eax
je 0x7574
movq 0xee1d(%rip), %rax      # 0x14fd8
movq (%rax), %rcx
leaq 0x921b(%rip), %rdi      # 0xf3e0
movl $0x22, %esi
movl $0x1, %edx
callq 0x4550
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x61f6
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0xd0(%rbp), %rdi
callq 0x7a02
leaq -0xb0(%rbp), %rdi
callq 0x7a02
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x6230
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x624f
movq -0x158(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x120(%rbp), %rdi
callq 0x7fb2
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 0x9041(%rip), %rsi      # 0xf2e9
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
movq %r12, %rdi
movq %r14, %rsi
callq 0xb072
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
movq -0x48(%rbp), %rdi
movq -0x40(%rbp), %r14
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6334
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x634d
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
incl %r14d
movslq %r14d, %r14
movl $0x1, %edi
movq %r14, %rsi
callq 0x41c0
movq 0xeff1(%rip), %rcx      # 0x15358
imulq $0x70, -0x128(%rbp), %r13
movq %rax, 0x10(%rcx,%r13)
movq 0xefdd(%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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r12, %rsi
callq 0xb072
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
movq -0x48(%rbp), %rsi
movq %r15, %rdi
movq %r14, %rdx
callq 0x4270
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x63f4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x640d
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xef44(%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 0x74ca
movq -0xf8(%rbp), %rax
movq 0x18(%rax), %rax
movl 0x4(%rax), %eax
movq 0xef0c(%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 0x8e54(%rip), %rsi      # 0xf30d
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 0x8e2b(%rip), %rsi      # 0xf317
callq 0x4330
movq 0xee60(%rip), %rax      # 0x15358
movl 0x4(%rax,%r13), %edi
callq 0x4120
testq %rax, %rax
je 0x6522
movq %rax, %r15
movq %rax, %rdi
callq 0x4110
movq %r14, %rdi
movq %r15, %rsi
movq %rax, %rdx
callq 0x4330
jmp 0x653c
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 0x8d64(%rip), %rsi      # 0xf322
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
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 0x6652
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x666f
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq 0x8c5e(%rip), %rax      # 0xf2d4
movq %rax, -0x78(%rbp)
leaq 0x8c55(%rip), %rax      # 0xf2d6
movq %rax, -0x70(%rbp)
leaq -0x1a0(%rbp), %rdi
movq %r14, %rsi
callq 0xc4d6
leaq -0xd0(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x1a0(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7ca1
cmpq $0x11, -0x190(%rbp)
jb 0x66cb
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x66cb
callq 0x4390
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41c0
movq 0xec67(%rip), %rcx      # 0x15358
movq %rax, 0x40(%rcx,%r13)
movl $0xb, %edx
movq %rbx, %rdi
leaq 0x8c4c(%rip), %rsi      # 0xf351
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 0x8bb0(%rip), %rsi      # 0xf30d
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 0x8b9e(%rip), %rsi      # 0xf32b
callq 0x4330
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x680e
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rax,%r14), %rdi
callq 0x4450
movq 0xeba0(%rip), %rcx      # 0x15358
movq 0x40(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x8b05(%rip), %rsi      # 0xf2d5
callq 0x4330
movq 0xeb7c(%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 0x67a8
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 0x8ae0(%rip), %rsi      # 0xf33a
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
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 0x68ee
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
leaq -0x78(%rbp), %r14
je 0x690b
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq 0x8a32(%rip), %rax      # 0xf344
movq %rax, -0x78(%rbp)
leaq 0x8a2a(%rip), %rax      # 0xf347
movq %rax, -0x70(%rbp)
leaq -0x188(%rbp), %rdi
movq %r14, %rsi
callq 0xc4d6
leaq -0xd0(%rbp), %rdi
leaq -0x148(%rbp), %rsi
leaq -0x188(%rbp), %rdx
xorl %ecx, %ecx
callq 0x7ca1
cmpq $0x11, -0x178(%rbp)
jb 0x6967
movq -0x188(%rbp), %rdi
testq %rdi, %rdi
je 0x6967
callq 0x4390
movq -0xc8(%rbp), %rdi
subq -0xd0(%rbp), %rdi
sarq $0x5, %rdi
incq %rdi
movl $0x4, %esi
callq 0x41c0
movq 0xe9cb(%rip), %rcx      # 0x15358
movq %rax, 0x48(%rcx,%r13)
movl $0x14, %edx
movq %rbx, %rdi
leaq 0x89a7(%rip), %rsi      # 0xf348
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 0x8914(%rip), %rsi      # 0xf30d
callq 0x4330
movq %rbx, %rdi
movq -0x128(%rbp), %rsi
callq 0x44c0
movl $0x1b, %edx
movq %rax, %rdi
leaq 0x8941(%rip), %rsi      # 0xf35d
callq 0x4330
movq -0xd0(%rbp), %rax
cmpq %rax, -0xc8(%rbp)
je 0x6a9d
xorl %r14d, %r14d
xorl %r15d, %r15d
movq (%rax,%r14), %rdi
callq 0x4450
movq 0xe911(%rip), %rcx      # 0x15358
movq 0x48(%rcx,%r13), %rcx
movl %eax, (%rcx,%r15,4)
movl $0x1, %edx
movq %rbx, %rdi
leaq 0x8876(%rip), %rsi      # 0xf2d5
callq 0x4330
movq 0xe8ed(%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 0x6a37
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 0x8090
movq %r14, %rdi
leaq 0x8856(%rip), %rsi      # 0xf379
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
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 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe7ad(%rip), %rax      # 0x15358
movb %r14b, 0x34(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6bc9
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6be2
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 0x8090
movq %r14, %rdi
leaq 0x876a(%rip), %rsi      # 0xf381
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe6c7(%rip), %rax      # 0x15358
movb %r14b, 0x35(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6caf
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6cc8
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 0x8090
movq %r14, %rdi
leaq 0x868c(%rip), %rsi      # 0xf389
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe5e1(%rip), %rax      # 0x15358
movl %r14d, 0x20(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6d95
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6dae
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xe5a3(%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 0x8090
movq %r14, %rdi
leaq 0x85a3(%rip), %rsi      # 0xf397
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe4ea(%rip), %rax      # 0x15358
movl %r14d, 0x24(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6e8c
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6ea5
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
movq 0xe4ac(%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 0x8090
movq %r14, %rdi
leaq 0x84ba(%rip), %rsi      # 0xf3a5
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe3f3(%rip), %rax      # 0x15358
movl %r14d, 0x58(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x6f83
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6f9c
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 0x8090
movq %r14, %rdi
leaq 0x83dd(%rip), %rsi      # 0xf3ae
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r12, %rdi
callq 0x4560
movq %r15, %rdi
movq %r12, %rsi
callq 0x4190
movq %r14, %rdi
movq %r15, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r15, %rdi
callq 0x43f0
movq %r12, %rdi
callq 0x43f0
movq 0xe30d(%rip), %rax      # 0x15358
movl %r14d, 0x5c(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7069
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 0x7090
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 0x8090
movq %r14, %rdi
leaq 0x82f2(%rip), %rsi      # 0xf3b7
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
movq %rax, %r14
movq %r15, %rdi
callq 0x4560
movq %r12, %rdi
movq %r15, %rsi
callq 0x4190
movq %r14, %rdi
movq %r12, %rsi
callq 0xe0f6
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xe219(%rip), %rax      # 0x15358
movl %r14d, 0x6c(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x715d
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7176
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 0x8090
movq %r14, %rdi
leaq 0x8216(%rip), %rsi      # 0xf3c1
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
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 0xe0f6
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xe125(%rip), %rax      # 0x15358
movl %r14d, 0x68(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7251
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x726a
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 0x8090
movq %r14, %rdi
leaq 0x8132(%rip), %rsi      # 0xf3d1
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 0x8090
movb $0x2e, -0x58(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x50(%rbp)
leaq -0x120(%rbp), %rdi
movq %r14, %rsi
callq 0xb072
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 0xe0f6
movl %eax, %r14d
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
callq 0x43f0
movq 0xe031(%rip), %rax      # 0x15358
movl %r14d, 0x64(%rax,%r13)
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7345
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x735e
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 0x6275
jmp 0x617d
jmp 0x739e
jmp 0x73de
jmp 0x7424
jmp 0x7424
jmp 0x7466
movq %rdx, -0x80(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
movq -0x80(%rbp), %r15
callq 0x43f0
jmp 0x73e4
movq %rdx, -0x170(%rbp)
movq %rax, %r14
movq %r12, %rdi
callq 0x43f0
movq %r15, %rdi
movq -0x170(%rbp), %r15
callq 0x43f0
jmp 0x7405
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x742a
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x742a
movq %rdx, %r15
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x744b
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x744b
jmp 0x7424
jmp 0x7445
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x746c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x746c
movq %rdx, %r15
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x749e
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x749e
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x7874
movq %r14, %rdi
callq 0x40f0
movq 0xded3(%rip), %rax      # 0x15358
movq $0x0, 0x64(%rax,%r13)
callq 0x4480
jmp 0x735e
movq %rdx, %r15
movq %rax, %r14
cmpl $0x1, %r15d
jne 0x7874
movq %r14, %rdi
callq 0x40f0
movq 0xdea1(%rip), %rax      # 0x15358
movl $0x0, 0x6c(%rax,%r13)
callq 0x4480
jmp 0x7176
movq 0xdaff(%rip), %rdi      # 0x14fd0
leaq 0x7e1a(%rip), %rsi      # 0xf2f2
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 0x8090
leaq -0x78(%rbp), %rsi
movb $0x2e, 0x20(%rsi)
movq (%rsi), %rax
movq %rax, 0x28(%rsi)
leaq -0x120(%rbp), %rdi
callq 0xb072
leaq -0x48(%rbp), %rdi
movq %rax, %rsi
callq 0xbdbe
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0xda97(%rip), %rdi      # 0x14fd0
callq 0x4330
movq %rax, %rbx
leaq 0x7dbb(%rip), %rsi      # 0xf303
movl $0x9, %edx
movq %rax, %rdi
callq 0x4330
movq %rbx, %rdi
callq 0x4140
leaq -0x48(%rbp), %rdi
callq 0x4130
leaq -0x78(%rbp), %rdi
callq 0x7c80
jmp 0x76be
leaq -0x1f0(%rbp), %rbx
leaq -0xf8(%rbp), %r14
movl $0xa, %edi
callq 0x4240
leal 0x1(%r15), %eax
cmpl $0x5a, %r15d
movl %eax, %r15d
jl 0x7582
cmpl $0x0, 0xddd8(%rip)      # 0x15378
movl $0x0, %r15d
jle 0x7582
xorl %r15d, %r15d
xorl %r12d, %r12d
movq 0xdda3(%rip), %rax      # 0x15358
movq 0x10(%rax,%r15), %rdi
xorl %esi, %esi
movq %rbx, %rdx
movq %r14, %rcx
callq 0x4380
testl %eax, %eax
jne 0x75ea
movq -0xf8(%rbp), %rdi
movq 0x18(%rdi), %rax
movl 0x4(%rax), %eax
movq 0xdd78(%rip), %rcx      # 0x15358
movl %eax, 0x4(%rcx,%r15)
callq 0x43b0
incq %r12
movslq 0xdd84(%rip), %rax      # 0x15378
addq $0x70, %r15
cmpq %rax, %r12
jl 0x75ae
xorl %r15d, %r15d
jmp 0x7582
jmp 0x7871
jmp 0x7871
jmp 0x7871
jmp 0x7871
jmp 0x7820
movq %rax, %r14
cmpq $0x11, -0x1a8(%rbp)
jb 0x7896
movq -0x1b8(%rbp), %rdi
testq %rdi, %rdi
je 0x7896
callq 0x4390
jmp 0x7896
movq %rax, %r14
jmp 0x78ef
movq %rdx, %rbx
movq %rax, %r14
leaq -0x168(%rbp), %rdi
callq 0x43f0
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7681
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7681
movq %rdx, %rbx
movq %rax, %r14
cmpl $0x1, %ebx
jne 0x78ef
movq %r14, %rdi
callq 0x40f0
movq 0xd937(%rip), %rdi      # 0x14fd0
leaq 0x7c10(%rip), %rsi      # 0xf2b0
movl $0x16, %edx
callq 0x4330
movq 0xd91f(%rip), %rdi      # 0x14fd0
callq 0x4140
movq %rax, %rdi
callq 0x4140
movl $0x1, %edi
callq 0x4350
movq %rax, %r14
callq 0x4480
jmp 0x78ef
movq %rax, %rdi
callq 0x7c72
movq %rax, %r14
movl $0x20, %esi
movq %r15, %rdi
callq 0x42e0
jmp 0x76f2
movq %rax, %r14
movq -0x120(%rbp), %rdi
cmpq %r12, %rdi
je 0x78fb
movq -0x110(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x78fb
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x78ef
movq -0x68(%rbp), %rsi
jmp 0x78e7
jmp 0x784f
jmp 0x7871
jmp 0x7871
jmp 0x7788
jmp 0x77c0
jmp 0x7783
jmp 0x7871
jmp 0x77c0
jmp 0x7788
jmp 0x7783
jmp 0x77c0
jmp 0x77c0
jmp 0x7871
jmp 0x7788
jmp 0x77c0
jmp 0x7783
jmp 0x77c0
jmp 0x7871
jmp 0x7783
jmp 0x7788
jmp 0x77c0
jmp 0x77c0
jmp 0x7788
jmp 0x7871
jmp 0x77c0
jmp 0x7783
jmp 0x77c0
jmp 0x7871
movq %rax, %r14
jmp 0x77a3
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 0x77c3
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x77c3
jmp 0x77c0
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7874
movq -0x38(%rbp), %rsi
jmp 0x7863
jmp 0x7871
movq %rax, %r14
cmpq $0x11, -0x178(%rbp)
jb 0x7874
movq -0x188(%rbp), %rdi
jmp 0x7814
jmp 0x7820
jmp 0x7871
movq %rax, %r14
cmpq $0x11, -0x190(%rbp)
jb 0x7874
movq -0x1a0(%rbp), %rdi
testq %rdi, %rdi
je 0x7874
callq 0x4390
jmp 0x7874
movq %rax, %r14
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x7852
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7852
jmp 0x7871
jmp 0x7871
jmp 0x7871
movq %rax, %r14
jmp 0x7896
jmp 0x784f
jmp 0x784f
jmp 0x784f
movq %rax, %r14
movq -0x78(%rbp), %rdi
leaq -0x68(%rbp), %rax
cmpq %rax, %rdi
je 0x7874
movq -0x68(%rbp), %rsi
incq %rsi
callq 0x42e0
jmp 0x7874
jmp 0x7871
jmp 0x7871
movq %rax, %r14
movq -0xf0(%rbp), %rdi
leaq -0xe0(%rbp), %rax
cmpq %rax, %rdi
je 0x7896
movq -0xe0(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0xd0(%rbp), %rdi
callq 0x7a02
leaq -0xb0(%rbp), %rdi
callq 0x7a02
movq -0x148(%rbp), %rdi
leaq -0x138(%rbp), %rax
cmpq %rax, %rdi
je 0x78d0
movq -0x138(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x158(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x78ef
movq -0x158(%rbp), %rsi
incq %rsi
callq 0x42e0
leaq -0x120(%rbp), %rdi
callq 0x7fb2
movq %r14, %rdi
callq 0x44d0
nop