// File: mbourand[P]webserv/srcs/Utils/Webserv.cpp
// Function: s_webserv::init_config(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
void s_webserv::init_config(const std::string& filename)
{
	std::ifstream file(filename.c_str(), std::ifstream::in);
	if (!file.good() || !file.is_open())
		throw std::invalid_argument("Couldn't open configuration file");

	std::string raw((std::istreambuf_iterator<char>(file)), (std::istreambuf_iterator<char>()));


	if (std::count(raw.begin(), raw.end(), '{') != std::count(raw.begin(), raw.end(), '}'))
		throw std::invalid_argument("Bad braces in config.");


	for (size_t i = 0; i < raw.size();)
	{
		while (raw[i] == ' ' || raw[i] == '\t')
			i++;
		if (raw[i] == '\n' || raw[i] == '#')
		{
			if (raw.find('\n', i) == std::string::npos)
				break;
			i = raw.find('\n', i) + 1;
			continue;
		}
		std::string directive_name = raw.substr(i, raw.find_first_of(" \t", i) - i);
		if (directive_name == "workers")
		{
			i += directive_name.size();
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;

			std::string directive_value = raw.substr(i, raw.find('\n', i) - i);
			if (directive_value.empty())
				throw std::invalid_argument("Empty directive value in config");

			std::list<std::string> words = ft::split(directive_value, " \t\n");
			std::string amount_str = words.front();
			if (!ft::is_integer<int>(amount_str))
				throw std::invalid_argument("Bad integer value in config");

			workers_amount = ft::toInt(amount_str);
			i += directive_value.size();
		}
		else if (directive_name == "gzip")
		{
			i += directive_name.size();
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;
			std::string directive_value = raw.substr(i, raw.find('\n', i) - i);
			if (directive_value.empty())
				throw std::invalid_argument("Empty directive value in config");
			else if (directive_value == "on")
				compression_gzip = true;
			else if (directive_value == "off")
				compression_gzip = false;
			else
				throw std::invalid_argument("Bad string value in config");
			i += directive_value.size();
		}
		else if (directive_name == "deflate")
		{
			i += directive_name.size();
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;
			std::string directive_value = raw.substr(i, raw.find('\n', i) - i);
			if (directive_value.empty())
				throw std::invalid_argument("Empty directive value in config");
			else if (directive_value == "on")
				compression_deflate = true;
			else if (directive_value == "off")
				compression_deflate = false;
			else
				throw std::invalid_argument("Bad string value in config");
			i += directive_value.size();
		}
		else if (directive_name == "max_connections")
		{
			i += directive_name.size();
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;

			std::string directive_value = raw.substr(i, raw.find('\n', i) - i);
			if (directive_value.empty())
				throw std::invalid_argument("Empty directive value in config");

			std::list<std::string> words = ft::split(directive_value, " \t\n");
			std::string amount_str = words.front();
			if (!ft::is_integer<int>(amount_str))
				throw std::invalid_argument("Bad integer value in config");

			max_connections = ft::toInt(amount_str);
			i += directive_value.size();
		}
		else if (directive_name == "compression_level")
		{
			i += directive_name.size();
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;

			std::string directive_value = raw.substr(i, raw.find('\n', i) - i);
			if (directive_value.empty())
				throw std::invalid_argument("Empty directive value in config");

			std::list<std::string> words = ft::split(directive_value, " \t\n");
			std::string amount_str = words.front();
			if (!ft::is_integer<int>(amount_str))
				throw std::invalid_argument("Bad integer value in config");

			compression_level = ft::toInt(amount_str);
			if (!compression_level || compression_level > 9)
				throw std::invalid_argument("Bad integer value in config");
			i += directive_value.size();
		}
		else if (directive_name == "server")
		{
			i += 6;
			while (raw[i] == ' ' || raw[i] == '\t')
				i++;
			if (raw[i] == '{' && raw[i + 1] == '\n')
				i += 2;
			else
				throw std::invalid_argument("Expected newline after { in config");

			size_t nesting = 1;
			size_t start_i = i;
			while (i < raw.size())
			{
				if (raw[i] == '{')
					nesting++;
				else if (raw[i] == '}')
					nesting--;
				if (nesting == 0)
					break;
				i++;
			}
			if (nesting != 0)
				throw std::invalid_argument("Bad braces in config file");
			if (raw[i + 1] != '\n')
				throw std::invalid_argument("Expected newline after } in config");
			vhosts.push_back(VirtualHost(ConfigContext(raw.substr(start_i, i - start_i))));
		}
		else
			throw std::invalid_argument("Bad directive name in config");
		if (raw.find('\n', i) == std::string::npos)
			break;
		i = raw.find('\n', i) + 1;
	}
	Logger::print("Config was parsed successfully", NULL, SUCCESS, SILENT);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa00, %rsp            # imm = 0xA00
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x760(%rbp)
movq -0x10(%rbp), %rdi
callq 0x92b0
movq %rax, %rsi
leaq -0x218(%rbp), %rdi
movl $0x8, %edx
callq 0x9b80
movq -0x218(%rbp), %rax
movq -0x18(%rax), %rax
leaq -0x218(%rbp,%rax), %rdi
callq 0x9a80
movb %al, -0x752(%rbp)
jmp 0x43cab
movb -0x752(%rbp), %al
testb $0x1, %al
jne 0x43cb7
jmp 0x43cdb
leaq -0x218(%rbp), %rdi
callq 0x99f0
movb %al, -0x761(%rbp)
jmp 0x43ccb
movb -0x761(%rbp), %al
testb $0x1, %al
jne 0x43d59
jmp 0x43cdb
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x770(%rbp)
leaq 0x27f0c(%rip), %rsi     # 0x6bc05
callq 0x9be0
jmp 0x43d00
movq -0x770(%rbp), %rdi
movq 0x4b2ba(%rip), %rsi     # 0x8efc8
movq 0x4b2a3(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x458eb
movq -0x770(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x458eb
leaq -0x258(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x147e0
leaq -0x268(%rbp), %rdi
callq 0x14840
leaq -0x269(%rbp), %rdi
movq %rdi, -0x778(%rbp)
callq 0x9b10
movq -0x778(%rbp), %r9
movq -0x258(%rbp), %rsi
movl -0x250(%rbp), %edx
movq -0x268(%rbp), %rcx
movl -0x260(%rbp), %r8d
leaq -0x248(%rbp), %rdi
callq 0x14870
jmp 0x43dbb
leaq -0x269(%rbp), %rdi
callq 0x9700
leaq -0x248(%rbp), %rdi
movq %rdi, -0x788(%rbp)
callq 0x95b0
movq -0x788(%rbp), %rdi
movq %rax, -0x278(%rbp)
callq 0x9400
movq %rax, -0x280(%rbp)
movb $0x7b, -0x281(%rbp)
movq -0x278(%rbp), %rdi
movq -0x280(%rbp), %rsi
leaq -0x281(%rbp), %rdx
callq 0x2e1f0
movq %rax, -0x780(%rbp)
jmp 0x43e1e
leaq -0x248(%rbp), %rdi
movq %rdi, -0x798(%rbp)
callq 0x95b0
movq -0x798(%rbp), %rdi
movq %rax, -0x290(%rbp)
callq 0x9400
movq %rax, -0x298(%rbp)
movb $0x7d, -0x299(%rbp)
movq -0x290(%rbp), %rdi
movq -0x298(%rbp), %rsi
leaq -0x299(%rbp), %rdx
callq 0x2e1f0
movq %rax, -0x790(%rbp)
jmp 0x43e75
movq -0x780(%rbp), %rax
movq -0x790(%rbp), %rcx
cmpq %rcx, %rax
je 0x43f2d
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x7a0(%rbp)
leaq 0x27d7c(%rip), %rsi     # 0x6bc26
callq 0x9be0
jmp 0x43eb1
movq -0x7a0(%rbp), %rdi
movq 0x4b109(%rip), %rsi     # 0x8efc8
movq 0x4b0f2(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x269(%rbp), %rdi
callq 0x9700
jmp 0x458eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x458df
movq -0x7a0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x458df
movq $0x0, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rax
movq %rax, -0x7a8(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x9480
movq %rax, %rcx
movq -0x7a8(%rbp), %rax
cmpq %rcx, %rax
jae 0x4581d
jmp 0x43f67
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x7b0(%rbp)
jmp 0x43f83
movq -0x7b0(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x7b1(%rbp)
je 0x43fcc
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x7c0(%rbp)
jmp 0x43fb6
movq -0x7c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x7b1(%rbp)
movb -0x7b1(%rbp), %al
testb $0x1, %al
jne 0x43fd8
jmp 0x43fef
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x43f67
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x7c8(%rbp)
jmp 0x4400b
movq -0x7c8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x44045
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x7d0(%rbp)
jmp 0x44036
movq -0x7d0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x23, %eax
jne 0x44090
movq -0x2a8(%rbp), %rdx
leaq -0x248(%rbp), %rdi
movl $0xa, %esi
callq 0x9860
cmpq $-0x1, %rax
jne 0x44068
jmp 0x4581d
movq -0x2a8(%rbp), %rdx
leaq -0x248(%rbp), %rdi
movl $0xa, %esi
callq 0x9860
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x43f38
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x7d8(%rbp)
leaq 0x27b97(%rip), %rsi     # 0x6bc3c
leaq -0x248(%rbp), %rdi
movq %rdi, -0x7e0(%rbp)
callq 0x9360
movq -0x7e0(%rbp), %rsi
movq -0x7d8(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x2c8(%rbp), %rdi
callq 0x96b0
jmp 0x440e1
leaq 0x27b57(%rip), %rsi     # 0x6bc3f
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x7e1(%rbp)
jmp 0x440fc
movb -0x7e1(%rbp), %al
testb $0x1, %al
jne 0x4410b
jmp 0x444af
leaq -0x2c8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x7f0(%rbp)
jmp 0x44141
movq -0x7f0(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x7f1(%rbp)
je 0x4418a
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x800(%rbp)
jmp 0x44174
movq -0x800(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x7f1(%rbp)
movb -0x7f1(%rbp), %al
testb $0x1, %al
jne 0x44196
jmp 0x441c4
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x44125
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x4580c
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x808(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x810(%rbp)
movl $0xa, %esi
callq 0x9860
movq -0x810(%rbp), %rsi
movq -0x808(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x2e8(%rbp), %rdi
callq 0x96b0
jmp 0x44213
leaq -0x2e8(%rbp), %rdi
callq 0x9a50
testb $0x1, %al
jne 0x44225
jmp 0x442a3
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x818(%rbp)
leaq 0x27a04(%rip), %rsi     # 0x6bc47
callq 0x9be0
jmp 0x4424a
movq -0x818(%rbp), %rdi
movq 0x4ad70(%rip), %rsi     # 0x8efc8
movq 0x4ad59(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x818(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4449e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x4449e
leaq -0x321(%rbp), %rdi
movq %rdi, -0x820(%rbp)
callq 0x9b10
movq -0x820(%rbp), %rdx
leaq 0x279a3(%rip), %rsi     # 0x6bc67
leaq -0x320(%rbp), %rdi
callq 0xa780
jmp 0x442d2
leaq -0x300(%rbp), %rdi
leaq -0x2e8(%rbp), %rsi
leaq -0x320(%rbp), %rdx
callq 0x2f910
jmp 0x442ee
leaq -0x320(%rbp), %rdi
callq 0x9c98
leaq -0x321(%rbp), %rdi
callq 0x9700
leaq -0x300(%rbp), %rdi
callq 0xcd40
movq %rax, %rsi
leaq -0x348(%rbp), %rdi
callq 0x92c0
jmp 0x44323
leaq -0x348(%rbp), %rdi
callq 0x45b70
movb %al, -0x821(%rbp)
jmp 0x44337
movb -0x821(%rbp), %al
testb $0x1, %al
jne 0x4441c
jmp 0x44347
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x830(%rbp)
leaq 0x27906(%rip), %rsi     # 0x6bc6b
callq 0x9be0
jmp 0x4436c
movq -0x830(%rbp), %rdi
movq 0x4ac4e(%rip), %rsi     # 0x8efc8
movq 0x4ac37(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x443bd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x320(%rbp), %rdi
callq 0x9c98
leaq -0x321(%rbp), %rdi
callq 0x9700
jmp 0x4449e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44492
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44486
movq -0x830(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x44486
leaq -0x348(%rbp), %rdi
callq 0x2f2a0
movl %eax, -0x834(%rbp)
jmp 0x44430
movq -0x760(%rbp), %rax
movl -0x834(%rbp), %ecx
movl %ecx, 0xc0(%rax)
leaq -0x2e8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x9c98
leaq -0x300(%rbp), %rdi
callq 0xceb0
leaq -0x2e8(%rbp), %rdi
callq 0x9c98
jmp 0x45796
leaq -0x348(%rbp), %rdi
callq 0x9c98
leaq -0x300(%rbp), %rdi
callq 0xceb0
leaq -0x2e8(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
leaq 0x29836(%rip), %rsi     # 0x6dcec
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x835(%rbp)
jmp 0x444ca
movb -0x835(%rbp), %al
testb $0x1, %al
jne 0x444d9
jmp 0x4476f
leaq -0x2c8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x840(%rbp)
jmp 0x4450f
movq -0x840(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x841(%rbp)
je 0x44558
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x850(%rbp)
jmp 0x44542
movq -0x850(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x841(%rbp)
movb -0x841(%rbp), %al
testb $0x1, %al
jne 0x44564
jmp 0x4457b
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x444f3
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x858(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x860(%rbp)
movl $0xa, %esi
callq 0x9860
movq -0x860(%rbp), %rsi
movq -0x858(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x368(%rbp), %rdi
callq 0x96b0
jmp 0x445ca
leaq -0x368(%rbp), %rdi
callq 0x9a50
testb $0x1, %al
jne 0x445dc
jmp 0x4465a
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x868(%rbp)
leaq 0x2764d(%rip), %rsi     # 0x6bc47
callq 0x9be0
jmp 0x44601
movq -0x868(%rbp), %rdi
movq 0x4a9b9(%rip), %rsi     # 0x8efc8
movq 0x4a9a2(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x868(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4475e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x4475e
leaq 0x25ad6(%rip), %rsi     # 0x6a137
leaq -0x368(%rbp), %rdi
callq 0xdf50
movb %al, -0x869(%rbp)
jmp 0x44675
movb -0x869(%rbp), %al
testb $0x1, %al
jne 0x44681
jmp 0x44694
movq -0x760(%rbp), %rax
movb $0x1, 0xc9(%rax)
jmp 0x44731
leaq 0x275ec(%rip), %rsi     # 0x6bc87
leaq -0x368(%rbp), %rdi
callq 0xdf50
movb %al, -0x86a(%rbp)
jmp 0x446af
movb -0x86a(%rbp), %al
testb $0x1, %al
jne 0x446bb
jmp 0x446cb
movq -0x760(%rbp), %rax
movb $0x0, 0xc9(%rax)
jmp 0x4472f
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x878(%rbp)
leaq 0x275a2(%rip), %rsi     # 0x6bc8b
callq 0x9be0
jmp 0x446f0
movq -0x878(%rbp), %rdi
movq 0x4a8ca(%rip), %rsi     # 0x8efc8
movq 0x4a8b3(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x878(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4475e
jmp 0x44731
jmp 0x44733
leaq -0x368(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x9c98
jmp 0x45794
leaq -0x368(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
leaq 0x27530(%rip), %rsi     # 0x6bca6
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x879(%rbp)
jmp 0x4478a
movb -0x879(%rbp), %al
testb $0x1, %al
jne 0x44799
jmp 0x44a2f
leaq -0x2c8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x888(%rbp)
jmp 0x447cf
movq -0x888(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x889(%rbp)
je 0x44818
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x898(%rbp)
jmp 0x44802
movq -0x898(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x889(%rbp)
movb -0x889(%rbp), %al
testb $0x1, %al
jne 0x44824
jmp 0x4483b
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x447b3
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x8a0(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x8a8(%rbp)
movl $0xa, %esi
callq 0x9860
movq -0x8a8(%rbp), %rsi
movq -0x8a0(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x388(%rbp), %rdi
callq 0x96b0
jmp 0x4488a
leaq -0x388(%rbp), %rdi
callq 0x9a50
testb $0x1, %al
jne 0x4489c
jmp 0x4491a
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x8b0(%rbp)
leaq 0x2738d(%rip), %rsi     # 0x6bc47
callq 0x9be0
jmp 0x448c1
movq -0x8b0(%rbp), %rdi
movq 0x4a6f9(%rip), %rsi     # 0x8efc8
movq 0x4a6e2(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x8b0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x44a1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44a1e
leaq 0x25816(%rip), %rsi     # 0x6a137
leaq -0x388(%rbp), %rdi
callq 0xdf50
movb %al, -0x8b1(%rbp)
jmp 0x44935
movb -0x8b1(%rbp), %al
testb $0x1, %al
jne 0x44941
jmp 0x44954
movq -0x760(%rbp), %rax
movb $0x1, 0xc8(%rax)
jmp 0x449f1
leaq 0x2732c(%rip), %rsi     # 0x6bc87
leaq -0x388(%rbp), %rdi
callq 0xdf50
movb %al, -0x8b2(%rbp)
jmp 0x4496f
movb -0x8b2(%rbp), %al
testb $0x1, %al
jne 0x4497b
jmp 0x4498b
movq -0x760(%rbp), %rax
movb $0x0, 0xc8(%rax)
jmp 0x449ef
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x8c0(%rbp)
leaq 0x272e2(%rip), %rsi     # 0x6bc8b
callq 0x9be0
jmp 0x449b0
movq -0x8c0(%rbp), %rdi
movq 0x4a60a(%rip), %rsi     # 0x8efc8
movq 0x4a5f3(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x8c0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x44a1e
jmp 0x449f1
jmp 0x449f3
leaq -0x388(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x9c98
jmp 0x45792
leaq -0x388(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
leaq 0x27278(%rip), %rsi     # 0x6bcae
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x8c1(%rbp)
jmp 0x44a4a
movb -0x8c1(%rbp), %al
testb $0x1, %al
jne 0x44a59
jmp 0x44de6
leaq -0x2c8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x8d0(%rbp)
jmp 0x44a8f
movq -0x8d0(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x8d1(%rbp)
je 0x44ad8
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x8e0(%rbp)
jmp 0x44ac2
movq -0x8e0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x8d1(%rbp)
movb -0x8d1(%rbp), %al
testb $0x1, %al
jne 0x44ae4
jmp 0x44afb
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x44a73
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x8e8(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x8f0(%rbp)
movl $0xa, %esi
callq 0x9860
movq -0x8f0(%rbp), %rsi
movq -0x8e8(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x3a8(%rbp), %rdi
callq 0x96b0
jmp 0x44b4a
leaq -0x3a8(%rbp), %rdi
callq 0x9a50
testb $0x1, %al
jne 0x44b5c
jmp 0x44bda
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x8f8(%rbp)
leaq 0x270cd(%rip), %rsi     # 0x6bc47
callq 0x9be0
jmp 0x44b81
movq -0x8f8(%rbp), %rdi
movq 0x4a439(%rip), %rsi     # 0x8efc8
movq 0x4a422(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x8f8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x44dd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44dd5
leaq -0x3e1(%rbp), %rdi
movq %rdi, -0x900(%rbp)
callq 0x9b10
movq -0x900(%rbp), %rdx
leaq 0x2706c(%rip), %rsi     # 0x6bc67
leaq -0x3e0(%rbp), %rdi
callq 0xa780
jmp 0x44c09
leaq -0x3c0(%rbp), %rdi
leaq -0x3a8(%rbp), %rsi
leaq -0x3e0(%rbp), %rdx
callq 0x2f910
jmp 0x44c25
leaq -0x3e0(%rbp), %rdi
callq 0x9c98
leaq -0x3e1(%rbp), %rdi
callq 0x9700
leaq -0x3c0(%rbp), %rdi
callq 0xcd40
movq %rax, %rsi
leaq -0x408(%rbp), %rdi
callq 0x92c0
jmp 0x44c5a
leaq -0x408(%rbp), %rdi
callq 0x45b70
movb %al, -0x901(%rbp)
jmp 0x44c6e
movb -0x901(%rbp), %al
testb $0x1, %al
jne 0x44d53
jmp 0x44c7e
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x910(%rbp)
leaq 0x26fcf(%rip), %rsi     # 0x6bc6b
callq 0x9be0
jmp 0x44ca3
movq -0x910(%rbp), %rdi
movq 0x4a317(%rip), %rsi     # 0x8efc8
movq 0x4a300(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44cf4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x3e0(%rbp), %rdi
callq 0x9c98
leaq -0x3e1(%rbp), %rdi
callq 0x9700
jmp 0x44dd5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44dc9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x44dbd
movq -0x910(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x44dbd
leaq -0x408(%rbp), %rdi
callq 0x2f2a0
movl %eax, -0x914(%rbp)
jmp 0x44d67
movq -0x760(%rbp), %rax
movl -0x914(%rbp), %ecx
movl %ecx, 0xc4(%rax)
leaq -0x3a8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x408(%rbp), %rdi
callq 0x9c98
leaq -0x3c0(%rbp), %rdi
callq 0xceb0
leaq -0x3a8(%rbp), %rdi
callq 0x9c98
jmp 0x45790
leaq -0x408(%rbp), %rdi
callq 0x9c98
leaq -0x3c0(%rbp), %rdi
callq 0xceb0
leaq -0x3a8(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
leaq 0x26ed1(%rip), %rsi     # 0x6bcbe
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x915(%rbp)
jmp 0x44e01
movb -0x915(%rbp), %al
testb $0x1, %al
jne 0x44e10
jmp 0x4521d
leaq -0x2c8(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x920(%rbp)
jmp 0x44e46
movq -0x920(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x921(%rbp)
je 0x44e8f
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x930(%rbp)
jmp 0x44e79
movq -0x930(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x921(%rbp)
movb -0x921(%rbp), %al
testb $0x1, %al
jne 0x44e9b
jmp 0x44eb2
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x44e2a
movq -0x2a8(%rbp), %rdx
movq %rdx, -0x938(%rbp)
leaq -0x248(%rbp), %rdi
movq %rdi, -0x940(%rbp)
movl $0xa, %esi
callq 0x9860
movq -0x940(%rbp), %rsi
movq -0x938(%rbp), %rdx
movq %rax, %rcx
movq -0x2a8(%rbp), %rax
subq %rax, %rcx
leaq -0x428(%rbp), %rdi
callq 0x96b0
jmp 0x44f01
leaq -0x428(%rbp), %rdi
callq 0x9a50
testb $0x1, %al
jne 0x44f13
jmp 0x44f91
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x948(%rbp)
leaq 0x26d16(%rip), %rsi     # 0x6bc47
callq 0x9be0
jmp 0x44f38
movq -0x948(%rbp), %rdi
movq 0x4a082(%rip), %rsi     # 0x8efc8
movq 0x4a06b(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x948(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4520c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x4520c
leaq -0x461(%rbp), %rdi
movq %rdi, -0x950(%rbp)
callq 0x9b10
movq -0x950(%rbp), %rdx
leaq 0x26cb5(%rip), %rsi     # 0x6bc67
leaq -0x460(%rbp), %rdi
callq 0xa780
jmp 0x44fc0
leaq -0x440(%rbp), %rdi
leaq -0x428(%rbp), %rsi
leaq -0x460(%rbp), %rdx
callq 0x2f910
jmp 0x44fdc
leaq -0x460(%rbp), %rdi
callq 0x9c98
leaq -0x461(%rbp), %rdi
callq 0x9700
leaq -0x440(%rbp), %rdi
callq 0xcd40
movq %rax, %rsi
leaq -0x488(%rbp), %rdi
callq 0x92c0
jmp 0x45011
leaq -0x488(%rbp), %rdi
callq 0x45b70
movb %al, -0x951(%rbp)
jmp 0x45025
movb -0x951(%rbp), %al
testb $0x1, %al
jne 0x4510d
jmp 0x45035
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x960(%rbp)
leaq 0x26c18(%rip), %rsi     # 0x6bc6b
callq 0x9be0
jmp 0x4505a
movq -0x960(%rbp), %rdi
movq 0x49f60(%rip), %rsi     # 0x8efc8
movq 0x49f49(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x450ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x460(%rbp), %rdi
callq 0x9c98
leaq -0x461(%rbp), %rdi
callq 0x9700
jmp 0x4520c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x45200
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x451f4
movq -0x960(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x451f4
leaq -0x488(%rbp), %rdi
callq 0x2f2a0
movl %eax, -0x964(%rbp)
jmp 0x45121
movq -0x760(%rbp), %rax
movl -0x964(%rbp), %ecx
movl %ecx, 0xcc(%rax)
cmpl $0x0, 0xcc(%rax)
je 0x4514d
movq -0x760(%rbp), %rax
cmpl $0x9, 0xcc(%rax)
jbe 0x451b1
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x970(%rbp)
leaq 0x26b00(%rip), %rsi     # 0x6bc6b
callq 0x9be0
jmp 0x45172
movq -0x970(%rbp), %rdi
movq 0x49e48(%rip), %rsi     # 0x8efc8
movq 0x49e31(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x970(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x451f4
leaq -0x428(%rbp), %rdi
callq 0x9480
addq -0x2a8(%rbp), %rax
movq %rax, -0x2a8(%rbp)
leaq -0x488(%rbp), %rdi
callq 0x9c98
leaq -0x440(%rbp), %rdi
callq 0xceb0
leaq -0x428(%rbp), %rdi
callq 0x9c98
jmp 0x4578e
leaq -0x488(%rbp), %rdi
callq 0x9c98
leaq -0x440(%rbp), %rdi
callq 0xceb0
leaq -0x428(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
leaq 0x26aac(%rip), %rsi     # 0x6bcd0
leaq -0x2c8(%rbp), %rdi
callq 0xdf50
movb %al, -0x971(%rbp)
jmp 0x45238
movb -0x971(%rbp), %al
testb $0x1, %al
jne 0x45247
jmp 0x45725
movq -0x2a8(%rbp), %rax
addq $0x6, %rax
movq %rax, -0x2a8(%rbp)
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x980(%rbp)
jmp 0x45275
movq -0x980(%rbp), %rax
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x20, %ecx
movb %al, -0x981(%rbp)
je 0x452be
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x990(%rbp)
jmp 0x452a8
movq -0x990(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
sete %al
movb %al, -0x981(%rbp)
movb -0x981(%rbp), %al
testb $0x1, %al
jne 0x452ca
jmp 0x452e1
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x45259
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x998(%rbp)
jmp 0x452fd
movq -0x998(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x4534e
movq -0x2a8(%rbp), %rsi
incq %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x9a0(%rbp)
jmp 0x4532b
movq -0x9a0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
jne 0x4534e
movq -0x2a8(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x453b5
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x9a8(%rbp)
leaq 0x2696b(%rip), %rsi     # 0x6bcd7
callq 0x9be0
jmp 0x45373
movq -0x9a8(%rbp), %rdi
movq 0x49c47(%rip), %rsi     # 0x8efc8
movq 0x49c30(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x9a8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4580c
movq $0x1, -0x490(%rbp)
movq -0x2a8(%rbp), %rax
movq %rax, -0x498(%rbp)
movq -0x2a8(%rbp), %rax
movq %rax, -0x9b0(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x9480
movq %rax, %rcx
movq -0x9b0(%rbp), %rax
cmpq %rcx, %rax
jae 0x4549c
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x9b8(%rbp)
jmp 0x45417
movq -0x9b8(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7b, %eax
jne 0x4543a
movq -0x490(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x490(%rbp)
jmp 0x45479
movq -0x2a8(%rbp), %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x9c0(%rbp)
jmp 0x45456
movq -0x9c0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x7d, %eax
jne 0x45477
movq -0x490(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x490(%rbp)
jmp 0x45479
cmpq $0x0, -0x490(%rbp)
jne 0x45485
jmp 0x4549c
movq -0x2a8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
jmp 0x453ce
cmpq $0x0, -0x490(%rbp)
je 0x4550d
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x9c8(%rbp)
leaq 0x26836(%rip), %rsi     # 0x6bcfa
callq 0x9be0
jmp 0x454cb
movq -0x9c8(%rbp), %rdi
movq 0x49aef(%rip), %rsi     # 0x8efc8
movq 0x49ad8(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x9c8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4580c
movq -0x2a8(%rbp), %rsi
incq %rsi
leaq -0x248(%rbp), %rdi
callq 0x9c70
movq %rax, -0x9d0(%rbp)
jmp 0x4552c
movq -0x9d0(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x455a2
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x9d8(%rbp)
leaq 0x267bb(%rip), %rsi     # 0x6bd14
callq 0x9be0
jmp 0x45560
movq -0x9d8(%rbp), %rdi
movq 0x49a5a(%rip), %rsi     # 0x8efc8
movq 0x49a43(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x9d8(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4580c
movq -0x760(%rbp), %rax
addq $0xa8, %rax
movq %rax, -0x9e0(%rbp)
movq -0x498(%rbp), %rdx
movq -0x2a8(%rbp), %rcx
subq %rdx, %rcx
leaq -0x708(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x96b0
jmp 0x455dc
leaq -0x729(%rbp), %rdi
movq %rdi, -0x9e8(%rbp)
callq 0x9b10
movq -0x9e8(%rbp), %rdx
leaq 0x25773(%rip), %rsi     # 0x6ad70
leaq -0x728(%rbp), %rdi
callq 0xa780
jmp 0x4560b
xorl %eax, %eax
movl %eax, %ecx
leaq -0x6e8(%rbp), %rdi
leaq -0x708(%rbp), %rsi
leaq -0x728(%rbp), %rdx
callq 0x47960
jmp 0x4562b
leaq -0x5d0(%rbp), %rdi
leaq -0x6e8(%rbp), %rsi
callq 0x66590
jmp 0x45640
movq -0x9e0(%rbp), %rdi
leaq -0x5d0(%rbp), %rsi
callq 0x45ce0
jmp 0x45655
leaq -0x5d0(%rbp), %rdi
callq 0x668a0
leaq -0x6e8(%rbp), %rdi
callq 0x47670
leaq -0x728(%rbp), %rdi
callq 0x9c98
leaq -0x729(%rbp), %rdi
callq 0x9700
leaq -0x708(%rbp), %rdi
callq 0x9c98
jmp 0x4578c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x45708
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x456fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x456f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x5d0(%rbp), %rdi
callq 0x668a0
leaq -0x6e8(%rbp), %rdi
callq 0x47670
leaq -0x728(%rbp), %rdi
callq 0x9c98
leaq -0x729(%rbp), %rdi
callq 0x9700
leaq -0x708(%rbp), %rdi
callq 0x9c98
jmp 0x4580c
movl $0x10, %edi
callq 0x9340
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x9f0(%rbp)
leaq 0x265f4(%rip), %rsi     # 0x6bd37
callq 0x9be0
jmp 0x4574a
movq -0x9f0(%rbp), %rdi
movq 0x49870(%rip), %rsi     # 0x8efc8
movq 0x49859(%rip), %rdx     # 0x8efb8
callq 0x9aa0
jmp 0x45903
movq -0x9f0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
callq 0x94c0
jmp 0x4580c
jmp 0x4578e
jmp 0x45790
jmp 0x45792
jmp 0x45794
jmp 0x45796
movq -0x2a8(%rbp), %rdx
leaq -0x248(%rbp), %rdi
movl $0xa, %esi
callq 0x9860
cmpq $-0x1, %rax
jne 0x457c0
movl $0x2, -0x730(%rbp)
jmp 0x457ed
movq -0x2a8(%rbp), %rdx
leaq -0x248(%rbp), %rdi
movl $0xa, %esi
callq 0x9860
addq $0x1, %rax
movq %rax, -0x2a8(%rbp)
movl $0x0, -0x730(%rbp)
leaq -0x2c8(%rbp), %rdi
callq 0x9c98
movl -0x730(%rbp), %eax
testl %eax, %eax
je 0x45807
jmp 0x45805
jmp 0x4581d
jmp 0x43f38
leaq -0x2c8(%rbp), %rdi
callq 0x9c98
jmp 0x458df
leaq -0x751(%rbp), %rdi
movq %rdi, -0x9f8(%rbp)
callq 0x9b10
movq -0x9f8(%rbp), %rdx
leaq 0x26516(%rip), %rsi     # 0x6bd54
leaq -0x750(%rbp), %rdi
callq 0xa780
jmp 0x4584c
xorl %eax, %eax
movl %eax, %esi
leaq -0x750(%rbp), %rdi
movl $0x1, %edx
movl $0x2, %ecx
callq 0x138a0
jmp 0x45868
leaq -0x750(%rbp), %rdi
callq 0x9c98
leaq -0x751(%rbp), %rdi
callq 0x9700
leaq -0x248(%rbp), %rdi
callq 0x9c98
leaq -0x218(%rbp), %rdi
callq 0x91d0
addq $0xa00, %rsp            # imm = 0xA00
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
jmp 0x458d3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x220(%rbp)
movl %eax, -0x224(%rbp)
leaq -0x750(%rbp), %rdi
callq 0x9c98
leaq -0x751(%rbp), %rdi
callq 0x9700
leaq -0x248(%rbp), %rdi
callq 0x9c98
leaq -0x218(%rbp), %rdi
callq 0x91d0
movq -0x220(%rbp), %rdi
callq 0x9af0
nopw %cs:(%rax,%rax)
nopl (%rax)