// File: /workspace/github_cpp_makefile_star2_O1/Nallantli[P]Rossa/main/rossa/node/node.cpp
// Function: BinOpNode::genParser() const
ptr_instruction_t BinOpNode::genParser() const
{
	trace_t stack_trace;

	if (op == "+")
		return std::make_shared<AddI>(a->genParser(), b->genParser(), token);
	if (op == "-")
		return std::make_shared<SubI>(a->genParser(), b->genParser(), token);
	if (op == "*")
		return std::make_shared<MulI>(a->genParser(), b->genParser(), token);
	if (op == "/")
		return std::make_shared<DivI>(a->genParser(), b->genParser(), token);
	if (op == "//")
		return std::make_shared<FDivI>(a->genParser(), b->genParser(), token);
	if (op == "%")
		return std::make_shared<ModI>(a->genParser(), b->genParser(), token);
	if (op == "**")
		return std::make_shared<PowI>(a->genParser(), b->genParser(), token);
	if (op == "|")
		return std::make_shared<BOrI>(a->genParser(), b->genParser(), token);
	if (op == "&")
		return std::make_shared<BAndI>(a->genParser(), b->genParser(), token);
	if (op == "^")
		return std::make_shared<BXOrI>(a->genParser(), b->genParser(), token);
	if (op == "<<")
		return std::make_shared<BShiftLeftI>(a->genParser(), b->genParser(), token);
	if (op == ">>")
		return std::make_shared<BShiftRightI>(a->genParser(), b->genParser(), token);
	if (op == "++")
		return std::make_shared<ConcatI>(a->genParser(), b->genParser(), token);

	if (op == "<")
		return std::make_shared<LessI>(a->genParser(), b->genParser(), token);
	if (op == ">")
		return std::make_shared<MoreI>(a->genParser(), b->genParser(), token);
	if (op == "<=")
		return std::make_shared<ELessI>(a->genParser(), b->genParser(), token);
	if (op == ">=")
		return std::make_shared<EMoreI>(a->genParser(), b->genParser(), token);
	if (op == "==")
		return std::make_shared<EqualsI>(a->genParser(), b->genParser(), token);
	if (op == "!=")
		return std::make_shared<NEqualsI>(a->genParser(), b->genParser(), token);
	if (op == "===")
		return std::make_shared<PureEqualsI>(a->genParser(), b->genParser(), token);
	if (op == "!==")
		return std::make_shared<PureNEqualsI>(a->genParser(), b->genParser(), token);
	if (op == "&&")
		return std::make_shared<AndI>(a->genParser(), b->genParser(), token);
	if (op == "||")
		return std::make_shared<OrI>(a->genParser(), b->genParser(), token);

	if (op == ".=")
		return std::make_shared<SetIndexI>(a->genParser(), b->genParser(), token);

	if (op == "=")
	{
		if (a->isConst())
			throw rossa_error_t("Cannot reassign constant value", token, stack_trace);
		return std::make_shared<SetI>(a->genParser(), b->genParser(), token);
	}
	if (op == ":=")
	{
		if (a->getType() != ID_NODE && a->getType() != BID_NODE)
			throw rossa_error_t("Only non-const variables may be declared with `:=`", token, stack_trace);
		hash_ull t;
		if (a->getType() == ID_NODE)
			t = ((IDNode *)a.get())->getKey();
		else
			t = ROSSA_HASH(((BIDNode *)a.get())->getKey());
		return std::make_shared<DeclareI>(t, b->genParser(), b->isConst(), token);
	}

	if (op == "[]")
		return std::make_shared<IndexI>(a->genParser(), b->genParser(), token);
	if (op == "->")
		return std::make_shared<CastToI>(a->genParser(), b->genParser(), token);
	if (op == "delete")
		return std::make_shared<DeleteI>(a->genParser(), b->genParser(), token);

	throw rossa_error_t(util::format(_UNKNOWN_BINARY_OP_, {op}), token, stack_trace);
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x90(%rsp)
movq $0x0, 0xa0(%rsp)
leaq 0xa8(%rsi), %r15
leaq 0x27617(%rip), %rsi     # 0x86b87
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f858
leaq 0x27602(%rip), %rsi     # 0x86b89
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f8ac
leaq 0x275e1(%rip), %rsi     # 0x86b7f
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f900
leaq 0x275cd(%rip), %rsi     # 0x86b82
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f954
leaq 0x275b5(%rip), %rsi     # 0x86b81
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f9a8
leaq 0x275a1(%rip), %rsi     # 0x86b84
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5f9fc
leaq 0x27584(%rip), %rsi     # 0x86b7e
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fa50
leaq 0x27583(%rip), %rsi     # 0x86b94
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5faa4
leaq 0x27569(%rip), %rsi     # 0x86b91
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5faf8
leaq 0x24cdb(%rip), %rsi     # 0x8431a
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fb4c
leaq 0x24e6e(%rip), %rsi     # 0x844c4
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fba0
leaq 0x24e5a(%rip), %rsi     # 0x844c7
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fbf4
leaq 0x27502(%rip), %rsi     # 0x86b86
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fc48
leaq 0x24cc4(%rip), %rsi     # 0x8435f
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fc9c
leaq 0x24c76(%rip), %rsi     # 0x84328
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fcf0
leaq 0x2497f(%rip), %rsi     # 0x84048
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fd44
leaq 0x24964(%rip), %rsi     # 0x84044
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fd98
leaq 0x2492e(%rip), %rsi     # 0x84025
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fdec
leaq 0x2747d(%rip), %rsi     # 0x86b8b
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fe40
leaq 0x248fb(%rip), %rsi     # 0x84020
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fe94
leaq 0x248e8(%rip), %rsi     # 0x84024
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5fee8
leaq 0x2743d(%rip), %rsi     # 0x86b90
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5ff3c
leaq 0x27429(%rip), %rsi     # 0x86b93
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5ff90
leaq 0x27415(%rip), %rsi     # 0x86b96
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x5ffe4
leaq 0x273f4(%rip), %rsi     # 0x86b8c
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x60038
leaq 0x273ea(%rip), %rsi     # 0x86b99
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x600a1
leaq 0x2509a(%rip), %rsi     # 0x84860
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x600cf
leaq 0x2739e(%rip), %rsi     # 0x86b7b
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
je 0x601eb
leaq 0x24834(%rip), %rsi     # 0x84028
movq %r15, %rdi
callq 0x10110
testl %eax, %eax
jne 0x60306
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6bdec
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a3a8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a498
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a588
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a678
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a768
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a858
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6a948
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6aa38
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6ab28
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6ac18
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6ad08
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6adf8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6aee8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6afd8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b0c8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b1b8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b2a8
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b398
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b488
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b578
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b668
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b758
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b848
jmp 0x6023a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6b938
jmp 0x6023a
movq 0xc8(%r14), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
testb %al, %al
jne 0x6029b
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6ba28
jmp 0x6023a
movq 0xc8(%r14), %rax
movl 0x20(%rax), %ecx
cmpl $0xc, %ecx
je 0x600b9
cmpl $0x19, %ecx
jne 0x603bf
cmpl $0xc, %ecx
jne 0x60123
movq 0xa8(%rax), %rax
movq %rax, 0x50(%rsp)
jmp 0x60174
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6bc0c
jmp 0x6023a
leaq 0x20(%rsp), %r15
movq %r15, -0x10(%r15)
movq 0xa8(%rax), %rsi
movq 0xb0(%rax), %rdx
addq %rsi, %rdx
leaq 0x10(%rsp), %rdi
callq 0x1e014
leaq 0x577aa(%rip), %rdi     # 0xb78f8
leaq 0x10(%rsp), %rsi
callq 0x6781e
movq %rax, 0x50(%rsp)
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x60174
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x103d0
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x77(%rsp), %r9
movb %al, (%r9)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
movq %r14, (%rsp)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x50(%rsp), %rcx
leaq 0x30(%rsp), %r8
callq 0x6bb18
movq 0x10(%rsp), %rax
movq %rax, (%rbx)
xorl %eax, %eax
movq %rax, 0x8(%rbx)
movq 0x18(%rsp), %rcx
movq %rax, 0x18(%rsp)
movq %rcx, 0x8(%rbx)
movq %rax, 0x10(%rsp)
jmp 0x6026a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
leaq 0x30(%rsp), %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x50(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x18(%rsp), %rdi
movq $0x0, -0x8(%rdi)
leaq 0x10(%rsp), %rsi
leaq 0x78(%rsp), %rdx
leaq 0x30(%rsp), %rcx
leaq 0x50(%rsp), %r8
movq %r14, %r9
callq 0x6bcfc
movq 0x10(%rsp), %rax
movq %rax, (%rbx)
xorl %eax, %eax
movq %rax, 0x8(%rbx)
movq 0x18(%rsp), %rcx
movq %rax, 0x18(%rsp)
movq %rcx, 0x8(%rbx)
movq %rax, 0x10(%rsp)
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x6026a
callq 0x1e6ee
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x60279
callq 0x1e6ee
leaq 0x90(%rsp), %rdi
callq 0x1d77a
movq %rbx, %rax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0xa8, %edi
callq 0x101e0
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x269e7(%rip), %rsi     # 0x86ca0
leaq 0x269fe(%rip), %rdx     # 0x86cbe
leaq 0x10(%rsp), %rdi
callq 0x1e7ca
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
leaq 0x90(%rsp), %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x476dc
xorl %ebp, %ebp
leaq 0x529ee(%rip), %rsi     # 0xb2ce0
leaq -0x28b45(%rip), %rdx    # 0x377b4
movq %r15, %rdi
callq 0x106d0
jmp 0x60425
movl $0xa8, %edi
callq 0x101e0
movq %rax, %r15
leaq 0x40(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x269ce(%rip), %rsi     # 0x86cf2
leaq 0x269e3(%rip), %rdx     # 0x86d0e
leaq 0x30(%rsp), %rdi
callq 0x1e7ca
leaq 0x60(%rsp), %r13
movq %r13, -0x10(%r13)
movq 0xa8(%r14), %rsi
movq 0xb0(%r14), %rdx
addq %rsi, %rdx
leaq 0x50(%rsp), %rdi
callq 0x1e014
leaq 0x78(%rsp), %rdi
leaq 0x50(%rsp), %rsi
leaq 0x77(%rsp), %rcx
movl $0x1, %edx
callq 0x20c5e
leaq 0x10(%rsp), %rdi
leaq 0x30(%rsp), %rsi
leaq 0x78(%rsp), %rdx
callq 0x48694
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
leaq 0x90(%rsp), %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x476dc
xorl %ebp, %ebp
leaq 0x52932(%rip), %rsi     # 0xb2ce0
leaq -0x28c01(%rip), %rdx    # 0x377b4
movq %r15, %rdi
callq 0x106d0
jmp 0x60425
movl $0xa8, %edi
callq 0x101e0
movq %rax, %r15
leaq 0x20(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x268e2(%rip), %rsi     # 0x86cbf
leaq 0x2690d(%rip), %rdx     # 0x86cf1
leaq 0x10(%rsp), %rdi
callq 0x1e7ca
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x10(%rsp), %rsi
leaq 0x90(%rsp), %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x476dc
xorl %ebp, %ebp
leaq 0x528ca(%rip), %rsi     # 0xb2ce0
leaq -0x28c69(%rip), %rdx    # 0x377b4
movq %r15, %rdi
callq 0x106d0
movq %rax, %rbx
leaq 0x20(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x6044b
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x6044b
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x78(%rsp), %rdi
callq 0x1dca2
jmp 0x6045d
movq %rax, %rbx
movb $0x1, %bpl
movq 0x50(%rsp), %rdi
cmpq %r13, %rdi
je 0x6047c
movq 0x60(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x6047c
movq %rax, %rbx
movb $0x1, %bpl
movq 0x30(%rsp), %rdi
cmpq %r12, %rdi
je 0x6050e
movq 0x40(%rsp), %rsi
jmp 0x604fe
jmp 0x604ec
jmp 0x60508
jmp 0x60508
jmp 0x60605
jmp 0x60619
jmp 0x6062d
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r15, %rdi
je 0x60630
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x60630
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
movq %rax, %rbx
movq 0x10(%rsp), %rdi
cmpq %r12, %rdi
je 0x6050e
movq 0x20(%rsp), %rsi
incq %rsi
callq 0x103d0
jmp 0x6050e
movq %rax, %rbx
movb $0x1, %bpl
testb %bpl, %bpl
je 0x60630
movq %r15, %rdi
callq 0x102d0
jmp 0x60630
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x6062d
jmp 0x60619
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
jmp 0x60605
jmp 0x60619
jmp 0x6062d
movq %rax, %rbx
movq 0x58(%rsp), %rdi
testq %rdi, %rdi
je 0x6061c
callq 0x1e6ee
jmp 0x6061c
movq %rax, %rbx
movq 0x38(%rsp), %rdi
testq %rdi, %rdi
je 0x60630
callq 0x1e6ee
jmp 0x60630
movq %rax, %rbx
leaq 0x90(%rsp), %rdi
callq 0x1d77a
movq %rbx, %rdi
callq 0x106f0
nop