// File: /workspace/github_cpp_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x518, %rsp            # imm = 0x518
movq %rdi, 0x10(%rsp)
movq (%rsi), %rsi
leaq 0x310(%rsp), %rbx
pushq $0x8
popq %rdx
movq %rbx, %rdi
callq 0x78d0
movq (%rbx), %rax
movq -0x18(%rax), %rbx
cmpl $0x0, 0x330(%rsp,%rbx)
jne 0x1e768
leaq 0x388(%rsp), %rdi
callq 0x7130
testb %al, %al
je 0x1e768
movq 0x3f8(%rsp,%rbx), %rsi
leaq 0x28(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0x18(%rsp), %rdi
pushq $-0x1
popq %rdx
xorl %ecx, %ecx
movl %edx, %r8d
callq 0xcee8
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
addq %rdi, %rsi
leaq 0xc0(%rsp), %rdx
movb $0x7b, (%rdx)
callq 0x1619c
movq %rax, %rbx
movq 0x18(%rsp), %rdi
movq 0x20(%rsp), %rsi
addq %rdi, %rsi
leaq 0x1f8(%rsp), %rdx
movb $0x7d, (%rdx)
callq 0x1619c
cmpq %rax, %rbx
jne 0x1e7b9
movq 0x10(%rsp), %rax
addq $0xa8, %rax
movq %rax, 0x58(%rsp)
xorl %r12d, %r12d
leaq 0x18(%rsp), %r15
pushq $0xa
popq %rbp
leaq 0x60(%rsp), %r13
leaq 0x1f8(%rsp), %r14
cmpq 0x20(%rsp), %r12
jae 0x1e637
movq 0x18(%rsp), %rax
leaq 0x8(%r12), %rbx
movzbl (%rax,%r12), %ecx
cmpl $0x9, %ecx
je 0x1e045
cmpl $0x20, %ecx
jne 0x1e04d
incq %r12
incq %rbx
jmp 0x1e036
cmpl $0xa, %ecx
je 0x1e057
cmpl $0x23, %ecx
jne 0x1e083
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
cmpq $-0x1, %rax
je 0x1e637
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
movq %rax, %r12
incq %r12
jmp 0x1e021
movq %r15, %rdi
leaq 0xf787(%rip), %rsi      # 0x2d814
movq %r12, %rdx
callq 0x72b0
subq %r12, %rax
movq %r13, %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
movq %r13, %rdi
leaq 0xf764(%rip), %rsi      # 0x2d817
callq 0x91b7
testb %al, %al
je 0x1e0da
addq 0x68(%rsp), %r12
movq 0x18(%rsp), %rax
movzbl (%rax,%r12), %ecx
cmpl $0x20, %ecx
je 0x1e0d5
cmpl $0x9, %ecx
jne 0x1e113
incq %r12
jmp 0x1e0c6
movq %r13, %rdi
leaq 0x117d8(%rip), %rsi     # 0x2f8bc
callq 0x91b7
testb %al, %al
je 0x1e1d7
addq 0x68(%rsp), %r12
movq 0x18(%rsp), %rax
movzbl (%rax,%r12), %ecx
cmpl $0x20, %ecx
je 0x1e10e
cmpl $0x9, %ecx
jne 0x1e210
incq %r12
jmp 0x1e0fb
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
subq %r12, %rax
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
cmpq $0x0, 0xc8(%rsp)
je 0x1e733
movq %r14, %rdi
leaq 0xf6ed(%rip), %rsi      # 0x2d83f
leaq 0x80(%rsp), %rdx
callq 0x8032
leaq 0x38(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movq %r14, %rdx
callq 0x16f10
movq %r14, %rdi
callq 0x79b8
movq 0x38(%rsp), %rsi
addq $0x10, %rsi
movq %r14, %rdi
callq 0x7690
movq %r14, %rdi
callq 0x1ebe0
testb %al, %al
je 0x1e6fe
movq %r14, %rdi
callq 0x16b90
movq 0x10(%rsp), %rcx
movl %eax, 0xc0(%rcx)
addq 0xc8(%rsp), %r12
movq %r14, %rdi
callq 0x79b8
leaq 0x38(%rsp), %rdi
callq 0x8f64
leaq 0xc0(%rsp), %rdi
jmp 0x1e355
movq %r13, %rdi
leaq 0xf69d(%rip), %rsi      # 0x2d87e
callq 0x91b7
testb %al, %al
je 0x1e293
addq 0x68(%rsp), %r12
movq 0x18(%rsp), %rax
movzbl (%rax,%r12), %ecx
cmpl $0x20, %ecx
je 0x1e20b
cmpl $0x9, %ecx
jne 0x1e2cc
incq %r12
jmp 0x1e1f8
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
subq %r12, %rax
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
cmpq $0x0, 0xc8(%rsp)
je 0x1e79d
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
leaq 0xdee0(%rip), %rsi      # 0x2c137
callq 0x91b7
movb $0x1, %cl
testb %al, %al
jne 0x1e283
movq %rbx, %rdi
leaq 0xf5f3(%rip), %rsi      # 0x2d85f
callq 0x91b7
testb %al, %al
je 0x1e80d
xorl %ecx, %ecx
leaq 0xc0(%rsp), %rbx
movq 0x10(%rsp), %rax
movb %cl, 0xc9(%rax)
jmp 0x1e34a
movq %r13, %rdi
leaq 0xf5e9(%rip), %rsi      # 0x2d886
callq 0x91b7
testb %al, %al
je 0x1e39a
addq 0x68(%rsp), %r12
movq 0x18(%rsp), %rax
movzbl (%rax,%r12), %ecx
cmpl $0x20, %ecx
je 0x1e2c7
cmpl $0x9, %ecx
jne 0x1e3d3
incq %r12
jmp 0x1e2b4
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
subq %r12, %rax
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
cmpq $0x0, 0xc8(%rsp)
je 0x1e7ee
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
leaq 0xde24(%rip), %rsi      # 0x2c137
callq 0x91b7
movb $0x1, %cl
testb %al, %al
jne 0x1e33f
movq %rbx, %rdi
leaq 0xf537(%rip), %rsi      # 0x2d85f
callq 0x91b7
testb %al, %al
je 0x1e8a7
xorl %ecx, %ecx
leaq 0xc0(%rsp), %rbx
movq 0x10(%rsp), %rax
movb %cl, 0xc8(%rax)
addq 0xc8(%rsp), %r12
movq %rbx, %rdi
callq 0x79b8
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
movq %rax, %rbx
cmpq $-0x1, %rax
je 0x1e383
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
movq %rax, %r12
incq %r12
movq %r13, %rdi
callq 0x79b8
cmpq $-0x1, %rbx
jne 0x1e021
jmp 0x1e637
movq %r13, %rdi
leaq 0xf4f2(%rip), %rsi      # 0x2d896
callq 0x91b7
testb %al, %al
je 0x1e475
addq 0x68(%rsp), %r12
movq 0x18(%rsp), %rax
movzbl (%rax,%r12), %ecx
cmpl $0x20, %ecx
je 0x1e3ce
cmpl $0x9, %ecx
jne 0x1e4a9
incq %r12
jmp 0x1e3bb
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
subq %r12, %rax
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
cmpq $0x0, 0xc8(%rsp)
je 0x1e872
movq %r14, %rdi
leaq 0xf42d(%rip), %rsi      # 0x2d83f
leaq 0x80(%rsp), %rdx
callq 0x8032
leaq 0x38(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movq %r14, %rdx
callq 0x16f10
movq %r14, %rdi
callq 0x79b8
movq 0x38(%rsp), %rsi
addq $0x10, %rsi
movq %r14, %rdi
callq 0x7690
movq %r14, %rdi
callq 0x1ebe0
testb %al, %al
je 0x1e83d
movq %r14, %rdi
callq 0x16b90
movq 0x10(%rsp), %rcx
movl %eax, 0xc4(%rcx)
jmp 0x1e1b0
movq %r13, %rdi
leaq 0xf429(%rip), %rsi      # 0x2d8a8
callq 0x91b7
testb %al, %al
je 0x1e8d7
movq 0x18(%rsp), %rax
movzbl -0x2(%rax,%rbx), %ecx
cmpl $0x9, %ecx
je 0x1e4a4
cmpl $0x20, %ecx
jne 0x1e557
incq %rbx
jmp 0x1e491
movq %r15, %rdi
movl %ebp, %esi
movq %r12, %rdx
callq 0x7650
subq %r12, %rax
leaq 0xc0(%rsp), %rdi
movq %r15, %rsi
movq %r12, %rdx
movq %rax, %rcx
callq 0x7540
cmpq $0x0, 0xc8(%rsp)
je 0x1e961
movq %r14, %rdi
leaq 0xf357(%rip), %rsi      # 0x2d83f
leaq 0x80(%rsp), %rdx
callq 0x8032
leaq 0x38(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movq %r14, %rdx
callq 0x16f10
movq %r14, %rdi
callq 0x79b8
movq 0x38(%rsp), %rsi
addq $0x10, %rsi
movq %r14, %rdi
callq 0x7690
movq %r14, %rdi
callq 0x1ebe0
testb %al, %al
je 0x1e915
movq %r14, %rdi
callq 0x16b90
movq 0x10(%rsp), %rcx
movl %eax, 0xcc(%rcx)
addl $-0xa, %eax
cmpl $-0xa, %eax
ja 0x1e1b0
jmp 0x1e931
cmpl $0x7b, %ecx
jne 0x1e6ce
cmpb $0xa, -0x1(%rax,%rbx)
jne 0x1e6ce
movq 0x20(%rsp), %rdx
xorl %ecx, %ecx
movq %rbx, %r12
pushq $0x1
popq %rsi
cmpq %rdx, %r12
jae 0x1e69e
movb (%rax,%r12), %dil
cmpb $0x7b, %dil
jne 0x1e590
incq %rsi
jmp 0x1e599
cmpb $0x7d, %dil
jne 0x1e59e
decq %rsi
testq %rsi, %rsi
je 0x1e5a6
incq %r12
incq %rcx
jmp 0x1e578
cmpb $0xa, 0x1(%rax,%r12)
jne 0x1e8f6
leaq 0x38(%rsp), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x7540
leaq 0x80(%rsp), %rbx
movq %rbx, %rdi
leaq 0xe77b(%rip), %rsi      # 0x2cd4f
leaq 0xf(%rsp), %rdx
callq 0x8032
movq %r14, %rdi
leaq 0x38(%rsp), %rsi
movq %rbx, %rdx
xorl %ecx, %ecx
callq 0x1f386
leaq 0xc0(%rsp), %rbx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x2b578
movq 0x58(%rsp), %rdi
movq %rbx, %rsi
callq 0x1ec46
movq %rbx, %rdi
callq 0x2b6d6
movq %r14, %rdi
callq 0x1f0f0
leaq 0x80(%rsp), %rdi
callq 0x79b8
leaq 0x38(%rsp), %rdi
jmp 0x1e355
leaq 0xf2ee(%rip), %rsi      # 0x2d92c
leaq 0xa0(%rsp), %rdi
leaq 0xc0(%rsp), %rdx
callq 0x8032
leaq 0xa0(%rsp), %rdi
pushq $0x1
popq %rdx
pushq $0x2
popq %rcx
xorl %esi, %esi
callq 0xbe10
leaq 0xa0(%rsp), %rdi
callq 0x79b8
leaq 0x18(%rsp), %rdi
callq 0x79b8
leaq 0x310(%rsp), %rdi
callq 0x7170
addq $0x518, %rsp            # imm = 0x518
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf222(%rip), %rsi      # 0x2d8d2
movq %rax, %rdi
callq 0x7910
movq 0x24909(%rip), %rsi     # 0x42fc8
movq 0x248ea(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf1cf(%rip), %rsi      # 0x2d8af
movq %rax, %rdi
callq 0x7910
movq 0x248d9(%rip), %rsi     # 0x42fc8
movq 0x248ba(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf133(%rip), %rsi      # 0x2d843
movq %rax, %rdi
callq 0x7910
movq 0x248a9(%rip), %rsi     # 0x42fc8
movq 0x2488a(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf0da(%rip), %rsi      # 0x2d81f
movq %rax, %rdi
callq 0x7910
movq 0x24874(%rip), %rsi     # 0x42fc8
movq 0x24855(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf063(%rip), %rsi      # 0x2d7dd
movq %rax, %rdi
callq 0x7910
movq 0x2483f(%rip), %rsi     # 0x42fc8
movq 0x24820(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf070(%rip), %rsi      # 0x2d81f
movq %rax, %rdi
callq 0x7910
jmp 0x1e827
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf033(%rip), %rsi      # 0x2d7fe
movq %rax, %rdi
callq 0x7910
movq 0x247ee(%rip), %rsi     # 0x42fc8
movq 0x247cf(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf01f(%rip), %rsi      # 0x2d81f
movq %rax, %rdi
callq 0x7910
jmp 0x1e8c1
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf044(%rip), %rsi      # 0x2d863
movq %rax, %rdi
callq 0x7910
movq 0x2479a(%rip), %rsi     # 0x42fc8
movq 0x2477b(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xeff4(%rip), %rsi      # 0x2d843
movq %rax, %rdi
callq 0x7910
movq 0x2476a(%rip), %rsi     # 0x42fc8
movq 0x2474b(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xef9b(%rip), %rsi      # 0x2d81f
movq %rax, %rdi
callq 0x7910
movq 0x24735(%rip), %rsi     # 0x42fc8
movq 0x24716(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1e991
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xefaa(%rip), %rsi      # 0x2d863
movq %rax, %rdi
callq 0x7910
movq 0x24700(%rip), %rsi     # 0x42fc8
movq 0x246e1(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xf026(%rip), %rsi      # 0x2d90f
movq %rax, %rdi
callq 0x7910
jmp 0x1e6e8
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xefe4(%rip), %rsi      # 0x2d8ec
movq %rax, %rdi
callq 0x7910
jmp 0x1e6b8
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xef1c(%rip), %rsi      # 0x2d843
movq %rax, %rdi
callq 0x7910
jmp 0x1e94b
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xef00(%rip), %rsi      # 0x2d843
movq %rax, %rdi
callq 0x7910
movq 0x24676(%rip), %rsi     # 0x42fc8
movq 0x24657(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
pushq $0x10
popq %rdi
callq 0x7290
movq %rax, %r14
leaq 0xeeac(%rip), %rsi      # 0x2d81f
movq %rax, %rdi
callq 0x7910
movq 0x24646(%rip), %rsi     # 0x42fc8
movq 0x24627(%rip), %rdx     # 0x42fb0
movq %r14, %rdi
callq 0x7830
jmp 0x1eafd
jmp 0x1eaae
jmp 0x1eabd
jmp 0x1eabd
jmp 0x1eb15
jmp 0x1eb15
jmp 0x1eaae
jmp 0x1eafd
jmp 0x1eaae
jmp 0x1eaca
jmp 0x1eabd
jmp 0x1eaca
jmp 0x1eaca
jmp 0x1eadc
jmp 0x1eaeb
jmp 0x1eafd
jmp 0x1eb22
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x2b6d6
jmp 0x1e9fb
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
callq 0x1f0f0
jmp 0x1ea0d
movq %rax, %rbx
leaq 0x80(%rsp), %rdi
callq 0x79b8
jmp 0x1ea1f
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
jmp 0x1eb08
jmp 0x1eb22
jmp 0x1eaca
jmp 0x1eadc
jmp 0x1eaeb
jmp 0x1eafd
jmp 0x1eb22
jmp 0x1eaae
jmp 0x1eaae
jmp 0x1eafd
jmp 0x1eb4e
movq %rax, %rbx
movq %r14, %rdi
callq 0x73d0
jmp 0x1eb2f
jmp 0x1eaae
jmp 0x1eb22
jmp 0x1eafd
movq %rax, %rbx
leaq 0xa0(%rsp), %rdi
jmp 0x1eb2a
jmp 0x1eb4e
jmp 0x1eb4e
jmp 0x1eb4e
jmp 0x1ea92
movq %rax, %rbx
jmp 0x1eb39
movq %rax, %rbx
movq %r14, %rdi
callq 0x73d0
jmp 0x1eb39
jmp 0x1eb22
jmp 0x1eafd
movq %rax, %rbx
movq %r14, %rdi
callq 0x73d0
jmp 0x1eb00
jmp 0x1eaca
movq %rax, %rbx
movq %r14, %rdi
callq 0x73d0
jmp 0x1eacd
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
callq 0x79b8
jmp 0x1eadf
movq %rax, %rbx
leaq 0x38(%rsp), %rdi
callq 0x8f64
jmp 0x1eb00
movq %rax, %rbx
leaq 0x1f8(%rsp), %rdi
callq 0x79b8
jmp 0x1eb00
movq %rax, %rbx
leaq 0xc0(%rsp), %rdi
callq 0x79b8
jmp 0x1eb25
jmp 0x1eb22
jmp 0x1eb15
jmp 0x1eb22
movq %rax, %rbx
movq %r14, %rdi
callq 0x73d0
jmp 0x1eb25
movq %rax, %rbx
leaq 0x60(%rsp), %rdi
callq 0x79b8
leaq 0x18(%rsp), %rdi
callq 0x79b8
leaq 0x310(%rsp), %rdi
callq 0x7170
movq %rbx, %rdi
callq 0x7860
movq %rax, %rbx
jmp 0x1eb2f
nop