// File: /workspace/github_cpp_makefile_star2_O1/mbourand[P]webserv/srcs/tcp-server.cpp
// Function: handle_terminal_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, std::__cxx11::list<Client, std::allocator<Client>> const&, timeval*, Threadpool*)
static void		handle_terminal_input(const std::string& input, const std::list<Client> &clients, struct timeval *start, Threadpool* workers)
{
	if (input == "stop")
		g_webserv.run = false;
	else if (input == "help")
		std::cout << "\e[34m" << "Available commands are: help|stop|gzip|deflate|info|workers|uptime|logger|types|debug" << "\e[39m" << std::endl;
	else if (input == "types")
		g_webserv.file_formatname->Print();
	else if (input == "debug")
	{
		g_webserv.debug = !g_webserv.debug;
		std::cout << "\e[34m" << "Debug print is now "+std::string(g_webserv.debug ? "enabled" : "disabled") << "\e[39m" << std::endl;
	}
	else if (input == "logger")
	{
		switch (Logger::getMode())
		{
		case VERBOSE:
			Logger::setMode(NORMAL);
			std::cout << "\e[34m" << "LoggerMode is now: NORMAL" << "\e[39m" << std::endl;
			break;
		case NORMAL:
			Logger::setMode(SILENT);
			std::cout << "\e[34m" << "LoggerMode is now: SILENT" << "\e[39m" << std::endl;
			break;
		default:
			Logger::setMode(VERBOSE);
			std::cout << "\e[34m" << "LoggerMode is now: VERBOSE" << "\e[39m" << std::endl;
			break;
		}
	}
	else if (input == "gzip")
	{
		g_webserv.compression_gzip = !g_webserv.compression_gzip;
		std::cout << "\e[34m" << "Plugin gzip is now "+std::string(g_webserv.compression_gzip ? "enabled" : "disabled") << "\e[39m" << std::endl;
	}
	else if (input == "deflate")
	{
		g_webserv.compression_deflate = !g_webserv.compression_deflate;
		std::cout << "\e[34m" << "Plugin deflate is now "+std::string(g_webserv.compression_deflate ? "enabled" : "disabled") << "\e[39m" << std::endl;
	}
	else if (input == "workers")
	{
		std::string	details("Workers Job Queue:\n");
		if (!workers->getJobs().empty())
		{
			workers->Lock();
			for (std::deque<Client*>::const_iterator jobs_it = workers->getJobs().begin(); jobs_it != workers->getJobs().end(); jobs_it++)
				details += "\t"+(*jobs_it)->req->_method->getType()+" "+(*jobs_it)->req->_url._path+" -> "+(*jobs_it)->sckt->getIPAddress()+"\n";
			workers->Unlock();
		}
		else
			details += "empty";
		std::cout << "\e[34m" << details << "\e[39m" << std::endl;
	}
	else if (input == "info")
	{
		std::cout << "\e[34m" << "Webserv is serving "+ft::toString(clients.size())+" clients (max: "+ft::toString(g_webserv.max_connections)+")" << "\e[39m" << std::endl;
		for (std::list<Client>::const_iterator it = clients.begin(); it != clients.end(); it++)
		{
			std::string	details("Client information:\n");
			details += "\tIP: "+it->sckt->getIPAddress()+"\n";
			details += "\tEntry Port: "+it->sckt->getServerPort_Str()+"\n";
			details += "\tSocket FD: "+ft::toString(it->sckt->GetSocket())+"\n";
			workers->Lock();
			if (!workers->getJobs().empty())
				for (std::deque<Client*>::const_iterator jobs_it = workers->getJobs().begin(); jobs_it != workers->getJobs().end(); jobs_it++)
					if (it->sckt == (*jobs_it)->sckt)
						details += "\tQueued Job: "+(*jobs_it)->req->_method->getType()+" "+(*jobs_it)->req->_url._path+"\n";
			if (!workers->getCurrentJobs().empty())
				for (std::list<Client*>::const_iterator jobs_it = workers->getCurrentJobs().begin(); jobs_it != workers->getCurrentJobs().end(); jobs_it++)
					if (it->sckt == (*jobs_it)->sckt)
						details += "\tWorker Assigned: "+(*jobs_it)->req->_method->getType()+" "+(*jobs_it)->req->_url._path+"\n";
			workers->Unlock();
			std::cout << "\e[34m" << details << "\e[39m" << std::endl;
		}
	}
	else if (input == "uptime")
	{
		struct timeval 		now;
		int					hours, mins, secs;

		hours = mins = 0;
		gettimeofday(&now, NULL);
		secs = now.tv_sec - start->tv_sec;
		while (secs >= 60)
		{
			mins++;
			secs -= 60;
		}
		while (mins >= 60)
		{
			hours++;
			mins -= 60;
		}
		std::cout << "\e[34m" << "Webserv uptime is "+ft::toString(hours)+" hour(s) "+ft::toString(mins)+" minute(s) and "+ft::toString(secs)+" second(s)." << "\e[39m" << std::endl;
	}
	else
		std::cout << "\e[34m" << "Unknown Command" << (input.empty() ? "." : ": \""+input+"\"") << "\e[39m" << std::endl;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rcx, %rbx
movq %rdx, %r15
movq %rsi, %r12
movq %rdi, %r14
leaq 0xc83b(%rip), %rsi      # 0x3d4a3
callq 0x7180
testl %eax, %eax
je 0x30dd7
leaq 0xc82c(%rip), %rsi      # 0x3d4a8
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x30de3
leaq 0xab90(%rip), %rsi      # 0x3b823
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x30e5e
leaq 0xc6bc(%rip), %rsi      # 0x3d366
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x30e7b
leaq 0xc811(%rip), %rsi      # 0x3d4d2
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x30f1c
leaq 0xcc54(%rip), %rsi      # 0x3d92c
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x30f79
leaq 0xabdb(%rip), %rsi      # 0x3b8ca
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x310cb
leaq 0xab5d(%rip), %rsi      # 0x3b863
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x3122f
leaq 0xc855(%rip), %rsi      # 0x3d572
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x316e2
leaq 0xc8be(%rip), %rsi      # 0x3d5f2
movq %r14, %rdi
callq 0x7180
testl %eax, %eax
je 0x31771
movq 0x1d25d(%rip), %rbx     # 0x4dfa8
leaq 0xc47f(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc8cc(%rip), %rsi      # 0x3d632
movl $0xf, %edx
movq %rbx, %rdi
callq 0x7510
movq 0x8(%r14), %r15
testq %r15, %r15
setne %bpl
je 0x31845
leaq 0xc8b7(%rip), %rsi      # 0x3d642
leaq 0x8(%rsp), %rdi
movq %r14, %rdx
callq 0xe31d
leaq 0xcb43(%rip), %rsi      # 0x3d8e2
leaq 0x8(%rsp), %rdi
callq 0x78d0
leaq 0x58(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x3246f
movq %rsi, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x32475
movb $0x0, 0x1d78a(%rip)     # 0x4e568
jmp 0x3121d
movq 0x1d1be(%rip), %rbx     # 0x4dfa8
leaq 0xc3e0(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc511(%rip), %rsi      # 0x3d316
movl $0x55, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc4f7(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7490
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7050
movq %rax, %rdi
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x7340
movq 0x1d70b(%rip), %rdi     # 0x4e570
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x18212
xorb $0x1, 0x1d6e7(%rip)     # 0x4e569
movq 0x1d11f(%rip), %rdi     # 0x4dfa8
leaq 0xc341(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
movzbl 0x1d6c8(%rip), %eax     # 0x4e569
leaq 0xc619(%rip), %rcx      # 0x3d4c1
leaq 0xc61a(%rip), %rsi      # 0x3d4c9
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rsi, %rdx
subq %rax, %rdx
addq $0x8, %rdx
leaq 0x8(%rsp), %rdi
callq 0x80f4
leaq 0xc5d3(%rip), %rcx      # 0x3d4ad
leaq 0x8(%rsp), %rdi
movl $0x13, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x7500
leaq 0x58(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31021
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x31028
leaq 0x1d62d(%rip), %rdi     # 0x4e550
callq 0x18444
movl (%rax), %eax
leaq 0x48(%rsp), %rsi
cmpl $0x1, %eax
je 0x31185
testl %eax, %eax
jne 0x311c0
movl $0x1, (%rsi)
leaq 0x1d603(%rip), %rdi     # 0x4e550
callq 0x18448
movq 0x1d04f(%rip), %rbx     # 0x4dfa8
leaq 0xc271(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc565(%rip), %rsi      # 0x3d4d9
jmp 0x311b9
xorb $0x1, 0x1d6b1(%rip)     # 0x4e631
movq 0x1d021(%rip), %rdi     # 0x4dfa8
leaq 0xc243(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
movzbl 0x1d692(%rip), %eax     # 0x4e631
leaq 0xc51b(%rip), %rcx      # 0x3d4c1
leaq 0xc51c(%rip), %rsi      # 0x3d4c9
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rsi, %rdx
subq %rax, %rdx
addq $0x8, %rdx
leaq 0x8(%rsp), %rdi
callq 0x80f4
leaq 0xc550(%rip), %rsi      # 0x3d528
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x124db
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1cfb0(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xc309(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
jmp 0x3116e
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1cf57(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xc2b0(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x7490
movsbl %al, %esi
movq %rbx, %rdi
callq 0x7050
movq %rax, %rdi
callq 0x7340
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x310ab
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3121d
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
jmp 0x3121d
xorb $0x1, 0x1d55e(%rip)     # 0x4e630
movq 0x1cecf(%rip), %rdi     # 0x4dfa8
leaq 0xc0f1(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
movzbl 0x1d53f(%rip), %eax     # 0x4e630
leaq 0xc3c9(%rip), %rcx      # 0x3d4c1
leaq 0xc3ca(%rip), %rsi      # 0x3d4c9
testq %rax, %rax
cmovneq %rcx, %rsi
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq %rsi, %rdx
subq %rax, %rdx
addq $0x8, %rdx
leaq 0x8(%rsp), %rdi
callq 0x80f4
leaq 0xc412(%rip), %rsi      # 0x3d53c
leaq 0x48(%rsp), %rdi
leaq 0x8(%rsp), %rdx
callq 0x124db
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1ce5e(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xc1b7(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x3109e
jmp 0x310ab
movl $0x2, (%rsi)
leaq 0x1d3be(%rip), %rdi     # 0x4e550
callq 0x18448
movq 0x1ce0a(%rip), %rbx     # 0x4dfa8
leaq 0xc02c(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc33a(%rip), %rsi      # 0x3d4f3
movl $0x19, %edx
jmp 0x311f9
movl $0x0, (%rsi)
leaq 0x1d383(%rip), %rdi     # 0x4e550
callq 0x18448
movq 0x1cdcf(%rip), %rbx     # 0x4dfa8
leaq 0xbff1(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc319(%rip), %rsi      # 0x3d50d
movl $0x1a, %edx
movq %rbx, %rdi
callq 0x7510
leaq 0xc108(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rbx, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x58(%rsp), %r14
movq %r14, -0x10(%r14)
leaq 0xc314(%rip), %rsi      # 0x3d553
leaq 0xc320(%rip), %rdx      # 0x3d566
leaq 0x48(%rsp), %rdi
callq 0x80f4
movq %rbx, %rdi
callq 0x18b70
movq 0x30(%rax), %rcx
cmpq 0x10(%rax), %rcx
je 0x317cf
movq %rbx, %rdi
callq 0x188b0
movq %rbx, %rdi
callq 0x18b70
movq 0x10(%rax), %r15
movq 0x20(%rax), %rcx
movq %rcx, 0xc8(%rsp)
movq 0x28(%rax), %rax
movq %rax, 0xd0(%rsp)
leaq 0x78(%rsp), %r13
leaq 0x38(%rsp), %rbp
leaq 0x18(%rsp), %r12
movq %rbx, %rdi
callq 0x18b70
cmpq 0x30(%rax), %r15
je 0x31762
movq (%r15), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rsi
movq (%rsi), %rax
leaq 0x118(%rsp), %r14
movq %r14, %rdi
callq *0x10(%rax)
movl $0x1, %r8d
movq %r14, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0x9a68(%rip), %rcx      # 0x3ad4b
callq 0x7500
leaq 0x108(%rsp), %rsi
movq %rsi, 0xf8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3131c
movq %rdx, 0xf8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x108(%rsp)
jmp 0x31322
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x100(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xf8(%rsp), %rdi
leaq 0xc2c8(%rip), %rsi      # 0x3d614
callq 0x78d0
leaq 0xb8(%rsp), %rsi
movq %rsi, 0xa8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31385
movq %rdx, 0xa8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0xb8(%rsp)
jmp 0x3138b
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0xb0(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r15), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rax), %rsi
movq 0xc0(%rax), %rdx
leaq 0xa8(%rsp), %rdi
callq 0x7190
leaq 0x98(%rsp), %rsi
movq %rsi, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x313fc
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x31402
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
leaq 0xc13b(%rip), %rsi      # 0x3d567
callq 0x78d0
movq %r13, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31454
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x3145c
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r15), %rax
movq (%rax), %rsi
leaq 0xd8(%rsp), %rdi
callq 0x1243e
movq 0x68(%rsp), %rcx
movl $0xf, %esi
cmpq %r13, %rcx
je 0x3149b
movq 0x78(%rsp), %rsi
movq 0x70(%rsp), %r8
movq 0xe0(%rsp), %rdx
leaq (%rdx,%r8), %rax
cmpq %rsi, %rax
jbe 0x314d5
movl $0xf, %esi
leaq 0xe8(%rsp), %rdi
cmpq %rdi, 0xd8(%rsp)
je 0x314d0
movq 0xe8(%rsp), %rsi
cmpq %rsi, %rax
jbe 0x314e9
movq 0xd8(%rsp), %rsi
leaq 0x68(%rsp), %rdi
callq 0x7190
jmp 0x314fa
leaq 0xd8(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x7500
movq %rbp, 0x28(%rsp)
movq (%rax), %rdx
leaq 0x10(%rax), %rcx
cmpq %rcx, %rdx
je 0x3151a
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31521
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0x28(%rsp), %rdi
leaq 0xa343(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r12, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31572
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x3157a
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x315bd
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x315d4
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x315f9
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x31610
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x31635
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x3165a
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x3167f
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x316a4
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x74b0
addq $0x8, %r15
cmpq 0xc8(%rsp), %r15
jne 0x312a1
movq 0xd0(%rsp), %rax
movq 0x8(%rax), %r15
addq $0x8, %rax
movq %rax, 0xd0(%rsp)
leaq 0x200(%r15), %rax
movq %rax, 0xc8(%rsp)
jmp 0x312a1
movq 0x1c8bf(%rip), %rdi     # 0x4dfa8
leaq 0xbae1(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
movl 0x10(%r12), %esi
leaq 0x88(%rsp), %r14
movq %r14, %rdi
callq 0x1c07f
leaq 0xbe61(%rip), %rsi      # 0x3d577
leaq 0x68(%rsp), %rdi
movq %r14, %rdx
callq 0x124db
leaq 0xbe61(%rip), %rsi      # 0x3d58b
leaq 0x68(%rsp), %rdi
callq 0x78d0
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3186b
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31872
movq %rbx, %rdi
leaq 0x58(%rsp), %r14
callq 0x188c6
jmp 0x317e0
xorl %r12d, %r12d
leaq 0x138(%rsp), %rbx
movq %rbx, %rdi
xorl %esi, %esi
callq 0x7740
movq (%rbx), %rax
movq (%r15), %rcx
movl %eax, %ebx
subl %ecx, %ebx
cmpl $0x3c, %ebx
jl 0x323a8
cmpl $0x77, %ebx
movl $0x77, %edx
cmovll %ebx, %edx
addl %ecx, %edx
negl %edx
addl %eax, %edx
addl $0x3b, %edx
movl $0x88888889, %r14d      # imm = 0x88888889
imulq %rdx, %r14
shrq $0x25, %r14
imull $-0x3c, %r14d, %edx
incl %r14d
subl %ecx, %eax
leal (%rax,%rdx), %ebx
addl $-0x3c, %ebx
jmp 0x323ab
leaq 0xbd96(%rip), %rsi      # 0x3d56c
leaq 0x48(%rsp), %rdi
callq 0x78d0
movq 0x1c7c1(%rip), %rdi     # 0x4dfa8
leaq 0xb9e3(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1c79f(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xbaf8(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
movq 0x48(%rsp), %rdi
cmpq %r14, %rdi
je 0x3121d
movq 0x58(%rsp), %rsi
jmp 0x310be
leaq 0x58(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xbddb(%rip), %rsi      # 0x3d630
leaq 0xbdd5(%rip), %rdx      # 0x3d631
leaq 0x48(%rsp), %rdi
callq 0x80f4
jmp 0x3248d
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl 0x1cd9c(%rip), %esi     # 0x4e62c
leaq 0xa8(%rsp), %rdi
callq 0x1c07f
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0xa8(%rsp), %rdx
callq 0x32dd9
leaq 0x95a1(%rip), %rsi      # 0x3ae5c
leaq 0x8(%rsp), %rdi
callq 0x78d0
leaq 0x58(%rsp), %rbp
movq %rbp, -0x10(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x318ec
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x318f3
movups (%rcx), %xmm0
movups %xmm0, (%rbp)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1c68c(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %r14
leaq 0xb9e5(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %r14, %rdi
callq 0x7250
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x31957
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x18(%rsp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0x31972
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x31993
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x319aa
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x319c5
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x319e6
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq (%r12), %r13
movq %r12, 0xd0(%rsp)
cmpq %r12, %r13
je 0x3121d
movq %rbp, 0x48(%rsp)
leaq 0x48(%rsp), %rdi
leaq 0xbb8f(%rip), %rsi      # 0x3d59b
leaq 0xbb9c(%rip), %rdx      # 0x3d5af
callq 0x80f4
movq 0x10(%r13), %rsi
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0x1243e
movl $0x5, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xbb73(%rip), %rcx      # 0x3d5b0
callq 0x7500
leaq 0x38(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31a6a
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31a70
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x9df9(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r14, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31abc
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x31ac3
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x31b06
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x31b22
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x31b3e
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x10(%r13), %rsi
leaq 0x68(%rsp), %r12
movq %r12, %rdi
callq 0x1241a
movl $0xd, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xba53(%rip), %rcx      # 0x3d5b6
callq 0x7500
leaq 0x38(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31b90
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31b96
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x9cd3(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r14, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31be2
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x31be9
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x31c2c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x31c48
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x31c64
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x10(%r13), %rdi
callq 0x12c90
leaq 0x68(%rsp), %r12
movq %r12, %rdi
movl %eax, %esi
callq 0x1c07f
movl $0xc, %r8d
movq %r12, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xb934(%rip), %rcx      # 0x3d5c4
callq 0x7500
leaq 0x38(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31cbd
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31cc3
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x9ba6(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r14, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31d0f
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x31d16
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x31d59
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x31d75
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x31d91
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq %rbx, %rdi
callq 0x188b0
movq %rbx, %rdi
callq 0x18b70
movq 0x30(%rax), %rcx
cmpq 0x10(%rax), %rcx
je 0x3206b
movq %rbx, %rdi
callq 0x18b70
movq 0x10(%rax), %r12
movq 0x20(%rax), %rbp
movq 0x28(%rax), %rax
movq %rax, 0xc8(%rsp)
movq %rbx, %rdi
callq 0x18b70
cmpq 0x30(%rax), %r12
je 0x3206b
movq 0x10(%r13), %rax
movq (%r12), %rcx
cmpq (%rcx), %rax
jne 0x32039
movq (%r12), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rsi
movq (%rsi), %rax
leaq 0xa8(%rsp), %r15
movq %r15, %rdi
callq *0x10(%rax)
movl $0xd, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xb7b2(%rip), %rcx      # 0x3d5d1
callq 0x7500
leaq 0x98(%rsp), %rsi
movq %rsi, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31e58
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x31e5e
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
leaq 0xb78c(%rip), %rsi      # 0x3d614
callq 0x78d0
leaq 0x78(%rsp), %rsi
movq %rsi, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x68(%rsp), %rdi
je 0x31eba
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x31ec0
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r12), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rax), %rsi
movq 0xc0(%rax), %rdx
callq 0x7190
leaq 0x38(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31f1b
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x31f21
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x9948(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r14, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x31f6d
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x31f74
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x31fb7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x31fd3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x31fef
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x32014
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x32039
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
addq $0x8, %r12
cmpq %rbp, %r12
jne 0x31dcb
movq 0xc8(%rsp), %rax
movq 0x8(%rax), %r12
addq $0x8, %rax
movq %rax, 0xc8(%rsp)
leaq 0x200(%r12), %rbp
jmp 0x31dcb
movq %rbx, %rdi
leaq 0x58(%rsp), %rbp
callq 0x18b76
cmpq %rax, (%rax)
je 0x32305
movq %rbx, %rdi
callq 0x18b76
movq %rax, %r12
movq (%r12), %r12
movq %rbx, %rdi
callq 0x18b76
cmpq %rax, %r12
je 0x32305
movq 0x10(%r13), %rax
movq 0x10(%r12), %rcx
cmpq (%rcx), %rax
jne 0x3208c
movq 0x10(%r12), %rax
movq 0x8(%rax), %rax
movq 0x28(%rax), %rsi
movq (%rsi), %rax
leaq 0xa8(%rsp), %r15
movq %r15, %rdi
callq *0x10(%rax)
movl $0x12, %r8d
movq %r15, %rdi
xorl %esi, %esi
xorl %edx, %edx
leaq 0xb4fe(%rip), %rcx      # 0x3d5df
callq 0x7500
leaq 0x98(%rsp), %rsi
movq %rsi, 0x88(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x3211a
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x32120
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x88(%rsp), %rdi
leaq 0xb4ca(%rip), %rsi      # 0x3d614
callq 0x78d0
leaq 0x78(%rsp), %rsi
movq %rsi, 0x68(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
leaq 0x68(%rsp), %rdi
je 0x3217c
movq %rdx, 0x68(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x78(%rsp)
jmp 0x32182
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x70(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x10(%r12), %rax
movq 0x8(%rax), %rax
movq 0xb8(%rax), %rsi
movq 0xc0(%rax), %rdx
callq 0x7190
leaq 0x38(%rsp), %rsi
movq %rsi, 0x28(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x321de
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x321e4
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x28(%rsp), %rdi
leaq 0x9685(%rip), %rsi      # 0x3b88d
callq 0x78d0
movq %r14, 0x8(%rsp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x32230
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x32237
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
leaq 0x48(%rsp), %rdi
callq 0x7190
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x3227a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x32296
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x322b2
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x322d7
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x3208c
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
jmp 0x3208c
movq %rbx, %rdi
callq 0x188c6
movl $0x5, %edx
movq 0x1bc8f(%rip), %rdi     # 0x4dfa8
leaq 0xaeb1(%rip), %rsi      # 0x3d1d1
callq 0x7510
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1bc72(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %r12
movl $0x5, %edx
movq %rax, %rdi
leaq 0xafc3(%rip), %rsi      # 0x3d310
callq 0x7510
movq (%r12), %rax
movq -0x18(%rax), %rdi
addq %r12, %rdi
movl $0xa, %esi
callq 0x7490
movsbl %al, %esi
movq %r12, %rdi
callq 0x7050
movq %rax, %rdi
callq 0x7340
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x32391
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
movq (%r13), %r13
cmpq 0xd0(%rsp), %r13
jne 0x319fb
jmp 0x3121d
xorl %r14d, %r14d
cmpl $0x3c, %r14d
jl 0x323e2
cmpl $0x77, %r14d
movl $0x77, %eax
cmovll %r14d, %eax
negl %eax
addl %r14d, %eax
addl $0x3b, %eax
movl $0x88888889, %r12d      # imm = 0x88888889
imulq %rax, %r12
shrq $0x25, %r12
imull $-0x3c, %r12d, %eax
incl %r12d
addl %eax, %r14d
addl $-0x3c, %r14d
movq 0x1bbbf(%rip), %rdi     # 0x4dfa8
leaq 0xade1(%rip), %rsi      # 0x3d1d1
movl $0x5, %edx
callq 0x7510
leaq 0xf8(%rsp), %r15
movq %r15, %rdi
movl %r12d, %esi
callq 0x1c07f
leaq 0xb1e5(%rip), %rsi      # 0x3d5f9
leaq 0xa8(%rsp), %rdi
movq %r15, %rdx
callq 0x124db
leaq 0xb1e1(%rip), %rsi      # 0x3d60c
leaq 0xa8(%rsp), %rdi
callq 0x78d0
leaq 0x98(%rsp), %r15
movq %r15, -0x10(%r15)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x324fd
movq %rdx, 0x88(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x98(%rsp)
jmp 0x32504
movups (%rcx), %xmm0
movups %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1bb0a(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xae63(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x324dd
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
testq %r15, %r15
je 0x3121d
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x310b9
jmp 0x3121d
movups (%rcx), %xmm0
movups %xmm0, (%r15)
movq 0x8(%rax), %rdx
movq %rdx, 0x90(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x118(%rsp), %rdi
movl %r14d, %esi
callq 0x1c07f
leaq 0x68(%rsp), %rdi
leaq 0x88(%rsp), %rsi
leaq 0x118(%rsp), %rdx
callq 0x32dd9
leaq 0xb0c6(%rip), %rsi      # 0x3d616
leaq 0x68(%rsp), %rdi
callq 0x78d0
leaq 0x38(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x32581
movq %rdx, 0x28(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x38(%rsp)
jmp 0x32588
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, 0x30(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xd8(%rsp), %rdi
movl %ebx, %esi
callq 0x1c07f
leaq 0x8(%rsp), %rdi
leaq 0x28(%rsp), %rsi
leaq 0xd8(%rsp), %rdx
callq 0x32dd9
leaq 0xb059(%rip), %rsi      # 0x3d626
leaq 0x8(%rsp), %rdi
callq 0x78d0
leaq 0x58(%rsp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x325ff
movq %rdx, 0x48(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x58(%rsp)
jmp 0x32607
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, 0x50(%rsp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x48(%rsp), %rsi
movq 0x50(%rsp), %rdx
movq 0x1b978(%rip), %rdi     # 0x4dfa8
callq 0x7510
movq %rax, %rbx
leaq 0xacd1(%rip), %rsi      # 0x3d310
movl $0x5, %edx
movq %rax, %rdi
callq 0x7510
movq %rbx, %rdi
callq 0x7250
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x3266b
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32686
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x326a7
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x326be
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x326d9
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x326fa
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x32717
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32738
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3121d
movq 0x108(%rsp), %rsi
jmp 0x310be
jmp 0x32a28
movq %rax, %rbx
jmp 0x32801
movq %rax, %rbx
jmp 0x3281c
movq %rax, %rbx
jmp 0x3283d
movq %rax, %rbx
jmp 0x32854
movq %rax, %rbx
jmp 0x3286f
movq %rax, %rbx
jmp 0x32890
movq %rax, %rbx
jmp 0x328ad
movq %rax, %rbx
jmp 0x328ce
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x329c7
movq %rax, %rbx
movb $0x1, %bpl
jmp 0x329e7
movq %rax, %rbx
jmp 0x32914
movq %rax, %rbx
jmp 0x3292f
jmp 0x32cd6
movq %rax, %rbx
jmp 0x32950
movq %rax, %rbx
jmp 0x3296c
movq %rax, %rbx
jmp 0x32987
jmp 0x32a28
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r12, %rdi
je 0x32801
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3281c
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xe8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3283d
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
cmpq %r14, %rdi
je 0x32854
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3286f
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x128(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32890
movq 0x128(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
cmpq %r15, %rdi
je 0x328ad
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x328ce
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x108(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32cf5
movq 0x108(%rsp), %rsi
jmp 0x32ced
jmp 0x329f5
jmp 0x32a28
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %rbp, %rdi
je 0x32914
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x3292f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0xb8(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32950
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x3296c
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x78(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32987
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
leaq 0x98(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x32cf5
movq 0x98(%rsp), %rsi
jmp 0x32ced
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x329c7
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
testb %bpl, %bpl
je 0x329e7
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x329e7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
testb %bpl, %bpl
jmp 0x32cf5
jmp 0x329f5
jmp 0x32a28
jmp 0x32a04
movq %rax, %rbx
jmp 0x32bf4
jmp 0x32a28
jmp 0x32cd6
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x32be7
jmp 0x32bf4
jmp 0x32cd6
jmp 0x32cd6
movq %rax, %rbx
jmp 0x32cf5
jmp 0x32cd6
jmp 0x32a46
jmp 0x32a4b
jmp 0x32a50
jmp 0x32cd6
jmp 0x32a46
jmp 0x32a4b
jmp 0x32a50
movq %rax, %rbx
jmp 0x32a86
movq %rax, %rbx
jmp 0x32a6a
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x32a6a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x32a86
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x32cd9
movq 0x78(%rsp), %rsi
jmp 0x32cc8
movq %rax, %rbx
jmp 0x32ade
movq %rax, %rbx
jmp 0x32ac7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r12, %rdi
je 0x32ac7
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
cmpq %rbp, %rdi
je 0x32ade
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xd8(%rsp), %rdi
leaq 0xe8(%rsp), %rax
cmpq %rax, %rdi
je 0x32b24
movq 0xe8(%rsp), %rsi
incq %rsi
callq 0x74b0
jmp 0x32b24
jmp 0x32cd6
movq %rax, %rbx
jmp 0x32baa
movq %rax, %rbx
jmp 0x32b85
movq %rax, %rbx
jmp 0x32b60
movq %rax, %rbx
jmp 0x32b3b
movq %rax, %rbx
movq 0x68(%rsp), %rdi
cmpq %r13, %rdi
je 0x32b3b
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x32b60
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x32b85
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xf8(%rsp), %rdi
leaq 0x108(%rsp), %rax
cmpq %rax, %rdi
je 0x32baa
movq 0x108(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x118(%rsp), %rdi
leaq 0x128(%rsp), %rax
cmpq %rax, %rdi
je 0x32cd9
movq 0x128(%rsp), %rsi
jmp 0x32cc8
jmp 0x32cd6
jmp 0x32cd6
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r15, %rdi
je 0x32bf4
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x32cf5
movq 0x18(%rsp), %rsi
jmp 0x32ced
jmp 0x32c1b
jmp 0x32cd6
jmp 0x32c25
jmp 0x32c2a
jmp 0x32c34
jmp 0x32c2f
movq %rax, %rbx
jmp 0x32c4e
jmp 0x32cd6
movq %rax, %rbx
jmp 0x32c6a
movq %rax, %rbx
jmp 0x32c86
movq %rax, %rbx
jmp 0x32cab
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x32c4e
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x28(%rsp), %rdi
leaq 0x38(%rsp), %rax
cmpq %rax, %rdi
je 0x32c6a
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x68(%rsp), %rdi
leaq 0x78(%rsp), %rax
cmpq %rax, %rdi
je 0x32c86
movq 0x78(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0x88(%rsp), %rdi
leaq 0x98(%rsp), %rax
cmpq %rax, %rdi
je 0x32cab
movq 0x98(%rsp), %rsi
incq %rsi
callq 0x74b0
movq 0xa8(%rsp), %rdi
leaq 0xb8(%rsp), %rax
cmpq %rax, %rdi
je 0x32cd9
movq 0xb8(%rsp), %rsi
incq %rsi
callq 0x74b0
jmp 0x32cd9
jmp 0x32cd6
jmp 0x32cd6
movq %rax, %rbx
movq 0x48(%rsp), %rdi
leaq 0x58(%rsp), %rax
cmpq %rax, %rdi
je 0x32cf5
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x74b0
movq %rbx, %rdi
callq 0x7810
nop