// File: /workspace/github_cpp_makefile_star2_O3/Nallantli[P]Rossa/main/rossa/instruction/instruction.cpp
// Function: CastToI::evaluate(object_t const*, std::vector<std::pair<token_t, function_t>, std::allocator<std::pair<token_t, function_t>>>&) const
const symbol_t CastToI::evaluate(const object_t *scope, trace_t &stack_trace) const
{
	const symbol_t evalA = a->evaluate(scope, stack_trace);
	const parameter_t convert = b->evaluate(scope, stack_trace).getTypeName(&token, stack_trace);

	switch (evalA.getValueType())
	{
	case value_type_enum::NUMBER:
		switch (convert.getBase().back())
		{
		case value_type_enum::NUMBER:
			return evalA;
		case value_type_enum::STRING:
			return symbol_t::String(evalA.toString(&token, stack_trace));
		case value_type_enum::BOOLEAN_D:
			return symbol_t::Boolean(evalA.getNumber(&token, stack_trace).getLong() != 0);
		default:
			break;
		}
		break;
	case value_type_enum::STRING:
		switch (convert.getBase().back())
		{
		case value_type_enum::NUMBER:
			try
			{
				const std::string s = evalA.getString(&token, stack_trace);
				if (s.length() > 2 && s[0] == '0' && isalpha(s[1]))
				{
					switch (s[1])
					{
					case 'b':
					case 'B':
						return symbol_t::Number(number_t::Long(std::stoll(s.substr(2), nullptr, 2)));
					default:
						return symbol_t::Number(number_t::Long(std::stoll(s, nullptr, 0)));
					}
				}
				return symbol_t::Number(number_t::Double(std::stold(s)));
			}
			catch (const std::invalid_argument &e)
			{
				throw rossa_error_t(util::format(_FAILURE_STR_TO_NUM_, {evalA.getString(&token, stack_trace)}), token, stack_trace);
			}
		case value_type_enum::STRING:
			return evalA;
		case value_type_enum::BOOLEAN_D:
			return symbol_t::Boolean(evalA.getString(&token, stack_trace) == KEYWORD_TRUE);
		case value_type_enum::ARRAY:
		{
			std::string str = evalA.getString(&token, stack_trace);
			std::vector<symbol_t> nv;
			int last = 0;
			int c, i, ix, q, s;
			for (q = 0, i = 0, ix = str.size(); i < ix; i++, q++)
			{
				c = static_cast<unsigned char>(str[i]);
				if (c >= 0 && c <= 127)
				{
					i += 0;
					s = 1;
				}
				else if ((c & 0xE0) == 0xC0)
				{
					i += 1;
					s = 2;
				}
				else if ((c & 0xF0) == 0xE0)
				{
					i += 2;
					s = 3;
				}
				else if ((c & 0xF8) == 0xF0)
				{
					i += 3;
					s = 4;
				}
				else
				{
					nv.clear();
					for (size_t i = 0; i < str.size(); i++)
						nv.push_back(symbol_t::String(std::string(1, str[i])));
					return symbol_t::Array(nv);
				}
				nv.push_back(symbol_t::String(str.substr(last, s)));
				last = i + 1;
			}
			return symbol_t::Array(nv);
		}
		case value_type_enum::TYPE_NAME:
		{
			const std::string s = evalA.getString(&token, stack_trace);
			if (s == KEYWORD_NUMBER)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::NUMBER}));
			if (s == KEYWORD_STRING)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::STRING}));
			if (s == KEYWORD_BOOLEAN)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::BOOLEAN_D}));
			if (s == KEYWORD_ARRAY)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::ARRAY}));
			if (s == KEYWORD_DICTIONARY)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::DICTIONARY}));
			if (s == KEYWORD_FUNCTION)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::FUNCTION}));
			if (s == KEYWORD_OBJECT)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::OBJECT}));
			if (s == KEYWORD_TYPE)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::TYPE_NAME}));
			if (s == KEYWORD_NIL_NAME)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::NIL}));
			if (s == KEYWORD_POINTER)
				return symbol_t::TypeName(parameter_t({}, {value_type_enum::POINTER}));
			// TODO
			// return symbol_t::TypeName(ROSSA_HASH(evalA.getString(&token, stack_trace)));
		}
		default:
			break;
		}
		break;
	case value_type_enum::BOOLEAN_D:
		switch (convert.getBase().back())
		{
		case value_type_enum::NUMBER:
			return symbol_t::Number(number_t::Long(evalA.getBool(&token, stack_trace) ? 1 : 0));
		case value_type_enum::STRING:
			return symbol_t::String(evalA.getBool(&token, stack_trace) ? "true" : "false");
		case value_type_enum::BOOLEAN_D:
			return evalA;
		default:
			break;
		}
		break;
	case value_type_enum::ARRAY:
		switch (convert.getBase().back())
		{
		case value_type_enum::STRING:
			return symbol_t::String(evalA.toString(&token, stack_trace));
		case value_type_enum::ARRAY:
			return evalA;
		case value_type_enum::DICTIONARY:
		{
			const std::vector<symbol_t> v = evalA.getVector(&token, stack_trace);
			std::map<const std::string, const symbol_t> nd;
			for (size_t i = 0; i < v.size(); i++)
				nd.insert({std::to_string(i), v[i]});
			return symbol_t::Dictionary(nd);
		}
		default:
			break;
		}
		break;
	case value_type_enum::DICTIONARY:
		switch (convert.getBase().back())
		{
		case value_type_enum::STRING:
			return symbol_t::String(evalA.toString(&token, stack_trace));
		case value_type_enum::ARRAY:
		{
			const std::map<const std::string, const symbol_t> dict = evalA.getDictionary(&token, stack_trace);
			std::vector<symbol_t> nv;
			for (auto &&e : dict)
			{
				std::vector<symbol_t> l = {symbol_t::String(e.first), e.second};
				nv.push_back(symbol_t::Array(l));
			}
			return symbol_t::Array(nv);
		}
		case value_type_enum::DICTIONARY:
			return evalA;
		default:
			break;
		}
		break;
	case value_type_enum::OBJECT:
	{
		if (convert == evalA.getAugValueType())
			return evalA;
		const hash_ull fname = ROSSA_HASH("->" + convert.toString());
		object_t *o = evalA.getObject(&token, stack_trace);
		if (o->hasValue(fname))
			return o->getVariable(fname, &token, stack_trace).call({}, &token, stack_trace);
		break;
	}
	case value_type_enum::TYPE_NAME:
		switch (convert.getBase().back())
		{
		case value_type_enum::STRING:
			return symbol_t::String("Type::" + evalA.getTypeName(&token, stack_trace).toString());
		case value_type_enum::TYPE_NAME:
			return evalA;
		default:
			break;
		}
		break;
	case value_type_enum::NIL:
		switch (convert.getBase().back())
		{
		case value_type_enum::STRING:
			return symbol_t::String(KEYWORD_NIL);
		default:
			break;
		}
		break;
	default:
		break;
	}

	const hash_ull fname = ROSSA_HASH("->" + convert.toString());
	return scope->getVariable(fname, &token, stack_trace).call({evalA}, &token, stack_trace);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x128, %rsp            # imm = 0x128
movq %rcx, %r14
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %rbp
movq 0x90(%rsi), %rsi
movq (%rsi), %rax
leaq 0xc8(%rsp), %rdi
callq *(%rax)
movq 0xa0(%r15), %rsi
movq (%rsi), %rax
leaq 0x40(%rsp), %rdi
movq %r12, %rdx
movq %r14, %rcx
callq *(%rax)
addq $0x8, %r15
leaq 0xe0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40c24
leaq 0x40(%rsp), %rdi
callq 0x3fe06
leaq 0xc8(%rsp), %rdi
callq 0x40b5a
addl $0x9, %eax
cmpl $0x8, %eax
ja 0x7238d
leaq 0x15a38(%rip), %rcx     # 0x873ac
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x719af
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x9, %rbx
je 0x71f41
cmpq $-0x4, %rbx
jne 0x7238d
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40c24
leaq 0x20(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x3d6ba
leaq 0x15dc8(%rip), %rsi     # 0x877b9
leaq 0x90(%rsp), %rdi
leaq 0x20(%rsp), %rdx
callq 0x1d67c
leaq 0x90(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71a34
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x71a4f
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x70(%rsp), %rbx
movq %rbx, %rdi
callq 0x36f28
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x71a72
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
leaq 0x40(%rsp), %rdi
callq 0x36d84
jmp 0x72758
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71ab3
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x4, %rbx
je 0x71f56
cmpq $-0x3, %rbx
je 0x71f41
cmpq $-0x2, %rbx
jne 0x7238d
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x409e0
movzbl %al, %eax
leaq 0x90(%rsp), %rdi
movq %rax, (%rdi)
callq 0x47014
leaq 0x40(%rsp), %rsi
movq %rax, (%rsi)
movl %edx, 0x8(%rsi)
movq %rbp, %rdi
callq 0x3fd84
jmp 0x72758
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x40b60
leaq 0xe0(%rsp), %rdi
leaq 0x40(%rsp), %rsi
callq 0x3ddb2
movl %eax, %ebx
leaq 0x70(%rsp), %r13
movq %r13, %rdi
callq 0x36f28
movq -0x18(%r13), %rdi
testq %rdi, %rdi
je 0x71b58
movq 0x68(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
leaq 0x40(%rsp), %rdi
callq 0x36d84
testb %bl, %bl
jne 0x71f41
leaq 0x90(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3d6ba
leaq 0x14015(%rip), %rsi     # 0x85b9b
leaq 0x40(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x1d67c
leaq 0x43d59(%rip), %rbx     # 0xb58f8
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
leaq 0x40(%rsp), %rdx
callq 0x20d1b
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x722bc
movq (%rbx), %r13
leaq 0x40(%rsp), %rdx
movq %r13, %rdi
callq 0x20d1b
movq %rax, %rbx
subq %r13, %rbx
sarq $0x5, %rbx
jmp 0x722df
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71c0e
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x4, %rbx
je 0x720f9
cmpq $-0x3, %rbx
je 0x71fba
cmpq $-0x2, %rbx
jne 0x7238d
jmp 0x71f41
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71c63
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x4, %rbx
jne 0x7238d
leaq 0x50(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x12c26(%rip), %rsi     # 0x848a3
leaq 0x12c22(%rip), %rdx     # 0x848a6
leaq 0x40(%rsp), %rdi
callq 0x1e698
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
jmp 0x71fa7
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71cd2
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x7, %rbx
je 0x71f41
cmpq $-0x5, %rbx
je 0x71fed
cmpq $-0x4, %rbx
jne 0x7238d
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x41338
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
jmp 0x7273d
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71d4c
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
cmpq $-0x7, %rbx
je 0x72123
cmpq $-0x5, %rbx
je 0x71f41
cmpq $-0x4, %rbx
jne 0x7238d
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x41338
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
jmp 0x7273d
leaq 0x40(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3dad8
movq 0x40(%rsp), %rdi
movq 0x48(%rsp), %rax
movq -0x8(%rax), %rbx
testq %rdi, %rdi
je 0x71dc6
movq 0x50(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
addq $0x9, %rbx
cmpq $0x7, %rbx
ja 0x7238d
leaq 0x155f5(%rip), %rax     # 0x873d0
movslq (%rax,%rbx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x90(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40904
leaq 0x159ac(%rip), %rsi     # 0x877b2
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x727b0
leaq 0x159e1(%rip), %rsi     # 0x87803
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x7280a
leaq 0x116be(%rip), %rsi     # 0x834fc
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72864
leaq 0x1169c(%rip), %rsi     # 0x834f6
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x728be
leaq 0x1168e(%rip), %rsi     # 0x83504
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72918
leaq 0x1167d(%rip), %rsi     # 0x8350f
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72a6a
leaq 0x158d9(%rip), %rsi     # 0x87787
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72ac4
leaq 0x1164e(%rip), %rsi     # 0x83518
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72b1e
leaq 0x1167c(%rip), %rsi     # 0x83562
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72b78
leaq 0x11664(%rip), %rsi     # 0x83566
leaq 0x90(%rsp), %rdi
callq 0x10110
testl %eax, %eax
je 0x72bcf
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7238d
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x7238d
leaq 0xc8(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdf4
jmp 0x72758
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x409e0
leaq 0x110db(%rip), %rcx     # 0x8304b
leaq 0x11225(%rip), %rsi     # 0x8319c
testb %al, %al
cmovneq %rcx, %rsi
leaq 0x50(%rsp), %rbx
movq %rbx, -0x10(%rbx)
movzbl %al, %edx
xorq $0x5, %rdx
addq %rsi, %rdx
leaq 0x40(%rsp), %rdi
callq 0x1e698
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
movq 0x40(%rsp), %rdi
cmpq %rbx, %rdi
jne 0x7274b
jmp 0x72758
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x40416
movq %rax, %rdi
callq 0x47180
testq %rax, %rax
leaq 0x40(%rsp), %rsi
setne (%rsi)
movq %rbp, %rdi
callq 0x3fd92
jmp 0x72758
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x405bc
leaq 0x40(%rsp), %rdi
movq %rax, %rsi
callq 0x451e8
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0x48(%rsp), %r15
movq 0x10(%r15), %r14
cmpq %r15, %r14
je 0x720d3
leaq 0x90(%rsp), %r12
leaq 0x8(%rsp), %r13
leaq 0x20(%r14), %rsi
movq %r12, %rdi
callq 0x3fdd8
leaq 0x40(%r14), %rsi
leaq 0xa0(%rsp), %rdi
callq 0x3fdf4
movq %rbp, %rbx
movl $0x2, %edx
movq %r13, %rdi
movq %r12, %rsi
leaq 0xc0(%rsp), %rcx
callq 0x436ac
movl $0x10, %ebp
leaq (%rsp,%rbp), %rdi
addq $0x90, %rdi
callq 0x3fe06
addq $-0x10, %rbp
cmpq $-0x10, %rbp
jne 0x7207a
movq %r12, %rdi
movq %r13, %rsi
callq 0x3fda0
leaq 0x20(%rsp), %rdi
movq %r12, %rsi
callq 0x2087a
movq %rbx, %rbp
movq %r12, %rdi
callq 0x3fe06
movq %r13, %rdi
callq 0x20952
movq %r14, %rdi
callq 0x104b0
movq %rax, %r14
cmpq %r15, %rax
jne 0x7203d
leaq 0x20(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fda0
leaq 0x20(%rsp), %rdi
callq 0x20952
leaq 0x40(%rsp), %rdi
callq 0x43c6a
jmp 0x72758
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x41338
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fdd8
jmp 0x7273d
movq %rbp, 0xd8(%rsp)
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x40848
leaq 0x8(%rsp), %rdi
movq %rax, %rsi
callq 0x437fe
leaq 0x48(%rsp), %rax
movl $0x0, (%rax)
xorl %ecx, %ecx
movq %rcx, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
movq %rcx, 0x20(%rax)
movq 0x10(%rsp), %rax
cmpq 0x8(%rsp), %rax
je 0x72293
leaq 0x30(%rsp), %rbx
xorl %r15d, %r15d
leaq 0x20(%rsp), %r12
leaq 0x90(%rsp), %r13
leaq 0x40(%rsp), %rbp
movabsq $0x346dc5d63886594b, %r14 # imm = 0x346DC5D63886594B
movl $0x1, %esi
cmpq $0xa, %r15
jb 0x721ec
movl $0x4, %esi
movq %r15, %rcx
cmpq $0x63, %rcx
jbe 0x721e5
cmpq $0x3e7, %rcx            # imm = 0x3E7
jbe 0x721ea
cmpq $0x2710, %rcx           # imm = 0x2710
jb 0x721ec
movq %rcx, %rax
mulq %r14
shrq $0xb, %rdx
addl $0x4, %esi
cmpq $0x1869f, %rcx          # imm = 0x1869F
movq %rdx, %rcx
ja 0x721af
addl $-0x3, %esi
jmp 0x721ec
addl $-0x2, %esi
jmp 0x721ec
decl %esi
movl %esi, %esi
movq %rbx, 0x20(%rsp)
movq %r12, %rdi
xorl %edx, %edx
callq 0x104c0
movq 0x20(%rsp), %rdi
movl 0x28(%rsp), %esi
movq %r15, %rdx
callq 0x210c7
movq %r15, %rdx
shlq $0x4, %rdx
addq 0x8(%rsp), %rdx
movq %r13, %rdi
movq %r12, %rsi
callq 0x763ae
movq %rbp, %rdi
movq %r13, %rsi
callq 0x45d92
leaq 0xb0(%rsp), %rdi
callq 0x3fe06
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x72262
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x20(%rsp), %rdi
cmpq %rbx, %rdi
je 0x72279
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x103d0
incq %r15
movq 0x10(%rsp), %rax
subq 0x8(%rsp), %rax
sarq $0x4, %rax
cmpq %rax, %r15
jb 0x7219c
leaq 0x40(%rsp), %rsi
movq 0xd8(%rsp), %rbp
movq %rbp, %rdi
callq 0x3fde6
leaq 0x40(%rsp), %rdi
callq 0x43c6a
leaq 0x8(%rsp), %rdi
jmp 0x72383
leaq 0x43635(%rip), %r13     # 0xb58f8
leaq 0x40(%rsp), %rsi
movq %r13, %rdi
callq 0x20cde
movq 0x8(%r13), %rbx
subq (%r13), %rbx
sarq $0x5, %rbx
decq %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x722fa
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7231b
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
movq %rbx, 0x20(%rsp)
leaq 0xc8(%rsp), %rdi
movq %r15, %rsi
movq %r14, %rdx
callq 0x40a9e
movq %rax, %rbx
leaq 0x20(%rsp), %rsi
movq %rax, %rdi
callq 0x3ce6c
testb %al, %al
je 0x7238d
leaq 0x20(%rsp), %rsi
movq %rbx, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x3ced2
xorps %xmm0, %xmm0
leaq 0x40(%rsp), %rdx
movaps %xmm0, (%rdx)
movq $0x0, 0x10(%rdx)
movq %rbp, %rdi
movq %rax, %rsi
movq %r15, %rcx
movq %r14, %r8
callq 0x41ffe
leaq 0x40(%rsp), %rdi
callq 0x20952
jmp 0x72758
leaq 0x90(%rsp), %rdi
leaq 0xe0(%rsp), %rsi
callq 0x3d6ba
leaq 0x137f2(%rip), %rsi     # 0x85b9b
leaq 0x40(%rsp), %rdi
leaq 0x90(%rsp), %rdx
callq 0x1d67c
leaq 0x43536(%rip), %rbx     # 0xb58f8
movq (%rbx), %rdi
movq 0x8(%rbx), %rsi
leaq 0x40(%rsp), %rdx
callq 0x20d1b
movq 0x8(%rbx), %rsi
cmpq %rsi, %rax
je 0x723f8
movq (%rbx), %r13
leaq 0x40(%rsp), %rdx
movq %r13, %rdi
callq 0x20d1b
movq %rax, %rbx
subq %r13, %rbx
sarq $0x5, %rbx
jmp 0x7241b
leaq 0x434f9(%rip), %r13     # 0xb58f8
leaq 0x40(%rsp), %rsi
movq %r13, %rdi
callq 0x20cde
movq 0x8(%r13), %rbx
subq (%r13), %rbx
sarq $0x5, %rbx
decq %rbx
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72436
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72457
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x20(%rsp), %rsi
movq %rbx, (%rsi)
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x3ced2
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
callq 0x3fdf4
leaq 0x40(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x8(%rsp), %rcx
movl $0x1, %edx
callq 0x436ac
leaq 0x40(%rsp), %rdx
movq %rbp, %rdi
movq %rbx, %rsi
movq %r15, %rcx
movq %r14, %r8
callq 0x41ffe
leaq 0x40(%rsp), %rdi
callq 0x20952
leaq 0x90(%rsp), %rdi
callq 0x3fe06
jmp 0x72758
movq %rbp, 0xd8(%rsp)
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40904
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
movl 0x48(%rsp), %ebx
testl %ebx, %ebx
jle 0x725d9
xorl %ebp, %ebp
leaq 0x90(%rsp), %r14
leaq 0x40(%rsp), %r15
leaq 0x8(%rsp), %r12
leaq 0x20(%rsp), %r13
movslq %ebp, %rdx
movq 0x40(%rsp), %rax
movzbl (%rax,%rdx), %eax
movl $0x1, %ecx
testb %al, %al
jns 0x72581
movl %eax, %ecx
andl $-0x20, %ecx
cmpl $0xc0, %ecx
jne 0x72554
incl %ebp
movl $0x2, %ecx
jmp 0x72581
movl %eax, %ecx
andl $-0x10, %ecx
cmpl $0xe0, %ecx
jne 0x7256b
addl $0x2, %ebp
movl $0x3, %ecx
jmp 0x72581
andl $-0x8, %eax
cmpl $0xf0, %eax
jne 0x72972
addl $0x3, %ebp
movl $0x4, %ecx
movq %r14, %rdi
movq %r15, %rsi
callq 0x10410
movq %r12, %rdi
movq %r14, %rsi
callq 0x3fdd8
movq %r13, %rdi
movq %r12, %rsi
callq 0x2087a
movq %r12, %rdi
callq 0x3fe06
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x725cf
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
incl %ebp
cmpl %ebx, %ebp
jl 0x72529
leaq 0x20(%rsp), %rsi
movq 0xd8(%rsp), %rbp
movq %rbp, %rdi
callq 0x3fda0
leaq 0x20(%rsp), %rdi
callq 0x20952
jmp 0x7273d
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40904
leaq 0x10a2f(%rip), %rsi     # 0x8304b
leaq 0x40(%rsp), %rdi
callq 0x10110
testl %eax, %eax
leaq 0x90(%rsp), %rsi
sete (%rsi)
movq %rbp, %rdi
callq 0x3fd92
jmp 0x7273d
leaq 0x40(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40904
cmpq $0x3, 0x48(%rsp)
jb 0x72709
movq 0x40(%rsp), %rax
cmpb $0x30, (%rax)
jne 0x72709
movsbl 0x1(%rax), %ebx
movl %ebx, %edi
callq 0x10650
testl %eax, %eax
je 0x72709
movzbl %bl, %eax
orl $0x20, %eax
cmpl $0x62, %eax
jne 0x72a34
leaq 0x90(%rsp), %rdi
leaq 0x40(%rsp), %rsi
movl $0x2, %edx
movq $-0x1, %rcx
callq 0x10410
leaq 0x90(%rsp), %rdi
xorl %esi, %esi
movl $0x2, %edx
callq 0x7629c
leaq 0x8(%rsp), %rdi
movq %rax, (%rdi)
callq 0x47014
leaq 0x20(%rsp), %rsi
movq %rax, (%rsi)
movl %edx, 0x8(%rsi)
movq %rbp, %rdi
callq 0x3fd84
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7273d
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x7273d
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
callq 0x76326
fstpl 0x20(%rsp)
leaq 0x20(%rsp), %rdi
callq 0x46ff4
leaq 0x90(%rsp), %rsi
movq %rax, (%rsi)
movl %edx, 0x8(%rsi)
movq %rbp, %rdi
callq 0x3fd84
fldz
fstp %st(0)
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72758
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x110(%rsp), %rbx
movq %rbx, %rdi
callq 0x36f28
movq -0x18(%rbx), %rdi
testq %rdi, %rdi
je 0x72781
movq 0x108(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
leaq 0xe0(%rsp), %rdi
callq 0x36d84
leaq 0xc8(%rsp), %rdi
callq 0x3fe06
movq %rbp, %rax
addq $0x128, %rsp            # imm = 0x128
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x2, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x4, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x3, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x5, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x7, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
movq 0x20(%rsp), %r14
movq 0x28(%rsp), %r15
cmpq %r14, %r15
je 0x7299a
movq %r14, %rbx
movq %rbx, %rdi
callq 0x3fe06
addq $0x10, %rbx
cmpq %r15, %rbx
jne 0x72984
movq %r14, 0x28(%rsp)
cmpq $0x0, 0x48(%rsp)
je 0x725d9
xorl %r12d, %r12d
leaq 0x90(%rsp), %rbx
leaq 0x8(%rsp), %r14
leaq 0x20(%rsp), %r15
movq 0x40(%rsp), %rax
movsbl (%rax,%r12), %edx
leaq 0xa0(%rsp), %rax
movq %rax, 0x90(%rsp)
movl $0x1, %esi
movq %rbx, %rdi
callq 0x104c0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x3fdd8
movq %r15, %rdi
movq %r14, %rsi
callq 0x2087a
movq %r14, %rdi
callq 0x3fe06
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x72a25
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
incq %r12
cmpq 0x48(%rsp), %r12
jb 0x729bb
jmp 0x725d9
leaq 0x40(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x7629c
leaq 0x20(%rsp), %rdi
movq %rax, (%rdi)
callq 0x47014
leaq 0x90(%rsp), %rsi
movq %rax, (%rsi)
movl %edx, 0x8(%rsi)
movq %rbp, %rdi
callq 0x3fd84
jmp 0x7273d
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x6, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x8, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x9, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0x1, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
jmp 0x72c24
xorps %xmm0, %xmm0
movaps %xmm0, 0x20(%rsp)
movq $0x0, 0x30(%rsp)
leaq 0xc0(%rsp), %rsi
movq $-0xa, (%rsi)
leaq 0x8(%rsp), %rdi
leaq 0x7(%rsp), %rcx
movl $0x1, %edx
callq 0x36dd8
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x3d600
leaq 0x40(%rsp), %rsi
movq %rbp, %rdi
callq 0x3fd76
leaq 0x40(%rsp), %rdi
callq 0x36e1e
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x72c45
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
leaq 0x20(%rsp), %rdi
callq 0x36d84
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72758
movq 0xa0(%rsp), %rsi
jmp 0x72750
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
jmp 0x72da0
jmp 0x72da0
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
movq %rdx, %r12
movq %rax, %r13
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72da6
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x72da6
jmp 0x72cf0
jmp 0x72cff
jmp 0x72d1b
movq %rax, %r13
leaq 0x40(%rsp), %rdi
callq 0x36e1e
jmp 0x72d02
movq %rax, %r13
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
je 0x72d1e
movq 0x18(%rsp), %rsi
subq %rdi, %rsi
callq 0x103d0
jmp 0x72d1e
movq %rax, %r13
leaq 0x20(%rsp), %rdi
callq 0x36d84
jmp 0x73175
jmp 0x73000
jmp 0x72d7d
movq %rdx, %r12
movq %rax, %r13
jmp 0x72dc1
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x7300a
jmp 0x73005
jmp 0x73000
jmp 0x7309d
jmp 0x73110
movq %rax, %r13
leaq 0x40(%rsp), %rdi
jmp 0x73150
jmp 0x72f88
jmp 0x72d7d
jmp 0x72d7d
movq %rax, %r13
jmp 0x73046
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
fstp %st(0)
movq %rdx, %r12
movq %rax, %r13
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72dc1
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
cmpl $0x1, %r12d
jne 0x731af
movq %r13, %rdi
callq 0x101a0
movl $0xa8, %edi
callq 0x101e0
movq %rax, %r12
leaq 0xa0(%rsp), %rbx
movq %rbx, -0x10(%rbx)
leaq 0x1499b(%rip), %rsi     # 0x8778e
leaq 0x149be(%rip), %rdx     # 0x877b8
leaq 0x90(%rsp), %rdi
callq 0x1e698
leaq 0x20(%rsp), %rdi
leaq 0xc8(%rsp), %rsi
movq %r15, %rdx
movq %r14, %rcx
callq 0x40904
leaq 0x8(%rsp), %rdi
leaq 0x20(%rsp), %rsi
leaq 0xc0(%rsp), %rcx
movl $0x1, %edx
callq 0x20b38
leaq 0x40(%rsp), %rdi
leaq 0x90(%rsp), %rsi
leaq 0x8(%rsp), %rdx
callq 0x47db4
movb $0x1, %bpl
leaq 0x40(%rsp), %rsi
movq %r12, %rdi
movq %r15, %rdx
movq %r14, %rcx
callq 0x46e88
xorl %ebp, %ebp
leaq 0x3deaf(%rip), %rsi     # 0xb0d20
leaq -0x3bbd4(%rip), %rdx    # 0x372a4
movq %r12, %rdi
callq 0x106d0
movq %rax, %r13
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72ea6
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x72ea6
movq %rax, %r13
movb $0x1, %bpl
leaq 0x8(%rsp), %rdi
callq 0x1db60
jmp 0x72eb8
movq %rax, %r13
movb $0x1, %bpl
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72ed3
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0x90(%rsp), %rdi
cmpq %rbx, %rdi
je 0x72ef0
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
testb %bpl, %bpl
jne 0x72f1c
jmp 0x72f24
movq %rax, %r13
movq 0x90(%rsp), %rdi
cmpq %rbx, %rdi
je 0x72f1c
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x72f1c
movq %rax, %r13
movq %r12, %rdi
callq 0x102d0
callq 0x10690
jmp 0x731af
movq %rax, %rdi
callq 0x1d626
movq %rax, %r13
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72f5f
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x72f5f
movq %rax, %r13
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x72fc4
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x72fc4
jmp 0x72fc1
jmp 0x731ac
jmp 0x73090
movq %rax, %r13
movq 0x40(%rsp), %rdi
cmpq %rbx, %rdi
jne 0x73058
jmp 0x731af
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x73157
movq %rax, %r13
leaq 0x40(%rsp), %rdi
callq 0x36e1e
jmp 0x731af
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
jmp 0x731ac
movq %rax, %r13
jmp 0x7303c
movq %rax, %r13
jmp 0x73017
movq %rax, %r13
leaq 0x8(%rsp), %rdi
callq 0x3fe06
movq 0x90(%rsp), %rdi
leaq 0xa0(%rsp), %rax
cmpq %rax, %rdi
je 0x7303c
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x20(%rsp), %rdi
callq 0x20952
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x731af
movq 0x50(%rsp), %rsi
jmp 0x7318e
movq %rax, %r13
leaq 0x40(%rsp), %rdi
callq 0x20952
jmp 0x73074
movq %rax, %r13
leaq 0x90(%rsp), %rdi
callq 0x3fe06
jmp 0x731af
jmp 0x731ac
jmp 0x731ac
movq %rax, %r13
jmp 0x73175
jmp 0x731ac
movq %rax, %r13
jmp 0x730f7
movq %rax, %r13
leaq 0x90(%rsp), %rdi
callq 0x3fe06
jmp 0x730f7
movq %rax, %r13
movl $0x10, %ebx
leaq (%rsp,%rbx), %rdi
addq $0x90, %rdi
callq 0x3fe06
addq $-0x10, %rbx
cmpq $-0x10, %rbx
jne 0x730bc
jmp 0x730f7
movq %rax, %r13
jmp 0x730ed
movq %rax, %r13
leaq 0x90(%rsp), %rdi
callq 0x3fe06
leaq 0x8(%rsp), %rdi
callq 0x20952
leaq 0x20(%rsp), %rdi
callq 0x20952
leaq 0x40(%rsp), %rdi
callq 0x43c6a
jmp 0x731af
movq %rax, %r13
jmp 0x73141
movq %rax, %r13
jmp 0x7312a
movq %rax, %r13
leaq 0x90(%rsp), %rdi
callq 0x57a94
movq 0x20(%rsp), %rdi
cmpq %rbx, %rdi
je 0x73141
movq 0x30(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0x40(%rsp), %rdi
callq 0x43c6a
leaq 0x8(%rsp), %rdi
callq 0x20952
jmp 0x731af
movq %rax, %r13
leaq 0x50(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x73175
movq 0x50(%rsp), %rsi
incq %rsi
callq 0x103d0
leaq 0xa0(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x731af
movq 0xa0(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x731af
movq %rax, %r13
leaq 0x40(%rsp), %rdi
callq 0x3fe06
jmp 0x731bc
movq %rax, %r13
jmp 0x731bc
movq %rax, %r13
leaq 0xe0(%rsp), %rdi
callq 0x36e1e
leaq 0xc8(%rsp), %rdi
callq 0x3fe06
movq %r13, %rdi
callq 0x106f0
nop