// File: /workspace/github_cpp_makefile_star2_O2/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 %r12
pushq %rbx
subq $0xa0, %rsp
movq %rsi, %r14
movq %rdi, %rbx
xorps %xmm0, %xmm0
movaps %xmm0, 0x70(%rsp)
andq $0x0, 0x80(%rsp)
leaq 0xa8(%rsi), %r15
leaq 0x23329(%rip), %rsi     # 0x7602f
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52d50
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59028
jmp 0x536ba
leaq 0x232da(%rip), %rsi     # 0x76031
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52da1
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x5904c
jmp 0x536ba
leaq 0x2327f(%rip), %rsi     # 0x76027
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52df2
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59070
jmp 0x536ba
leaq 0x23231(%rip), %rsi     # 0x7602a
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52e43
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59094
jmp 0x536ba
leaq 0x231df(%rip), %rsi     # 0x76029
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52e94
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x590b8
jmp 0x536ba
leaq 0x23191(%rip), %rsi     # 0x7602c
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52ee5
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x590dc
jmp 0x536ba
leaq 0x2313a(%rip), %rsi     # 0x76026
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52f36
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59100
jmp 0x536ba
leaq 0x23112(%rip), %rsi     # 0x7604f
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52f87
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59124
jmp 0x536ba
leaq 0x230be(%rip), %rsi     # 0x7604c
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x52fd8
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59148
jmp 0x536ba
leaq 0x2306a(%rip), %rsi     # 0x76049
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53029
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x5916c
jmp 0x536ba
leaq 0x23003(%rip), %rsi     # 0x76033
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x5307a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59190
jmp 0x536ba
leaq 0x22fb5(%rip), %rsi     # 0x76036
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x530cb
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x591b4
jmp 0x536ba
leaq 0x22f5c(%rip), %rsi     # 0x7602e
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x5311c
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x591d8
jmp 0x536ba
leaq 0x23282(%rip), %rsi     # 0x763a5
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x5316d
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x591fc
jmp 0x536ba
leaq 0x231fa(%rip), %rsi     # 0x7636e
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x531be
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59220
jmp 0x536ba
leaq 0x22ebb(%rip), %rsi     # 0x76080
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x5320f
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59244
jmp 0x536ba
leaq 0x22e66(%rip), %rsi     # 0x7607c
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53260
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59268
jmp 0x536ba
leaq 0x22dda(%rip), %rsi     # 0x76041
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x532b1
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x5928c
jmp 0x536ba
leaq 0x22d8c(%rip), %rsi     # 0x76044
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53302
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x592b0
jmp 0x536ba
leaq 0x22d33(%rip), %rsi     # 0x7603c
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53353
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x592d4
jmp 0x536ba
leaq 0x22ce6(%rip), %rsi     # 0x76040
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x533a4
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x592f8
jmp 0x536ba
leaq 0x22ca0(%rip), %rsi     # 0x7604b
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x533f5
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x5931c
jmp 0x536ba
leaq 0x22c52(%rip), %rsi     # 0x7604e
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53446
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59340
jmp 0x536ba
leaq 0x22c0b(%rip), %rsi     # 0x76058
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53497
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59364
jmp 0x536ba
leaq 0x22ba7(%rip), %rsi     # 0x76045
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x534fd
movq 0xc8(%r14), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
testb %al, %al
jne 0x53705
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x59388
jmp 0x536ba
leaq 0x22b57(%rip), %rsi     # 0x7605b
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x53562
movq 0xc8(%r14), %rsi
movl 0x20(%rsi), %eax
cmpl $0xc, %eax
je 0x53608
cmpl $0x19, %eax
jne 0x5375f
addq $0xa8, %rsi
leaq 0x40(%rsp), %rdi
callq 0x10550
leaq 0x633c4(%rip), %rdi     # 0xb6908
leaq 0x40(%rsp), %rsi
callq 0x1efb0
movq %rax, 0x20(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x101d0
jmp 0x53614
leaq 0x22ab7(%rip), %rsi     # 0x76020
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x535b3
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x593d3
jmp 0x536ba
leaq 0x22a69(%rip), %rsi     # 0x76023
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x5366a
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x593f7
jmp 0x536ba
movq 0xa8(%rsi), %rax
movq %rax, 0x20(%rsp)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rdi
movq (%rdi), %rax
callq *0x8(%rax)
leaq 0x88(%rsp), %rcx
movb %al, (%rcx)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
leaq 0x20(%rsp), %rsi
movq %rsp, %rdx
movq %r14, %r8
callq 0x593ac
leaq 0x48(%rsp), %rdi
movaps -0x8(%rdi), %xmm0
andq $0x0, (%rdi)
movups %xmm0, (%rbx)
andq $0x0, -0x8(%rdi)
jmp 0x536d9
leaq 0x229e0(%rip), %rsi     # 0x76051
movq %r15, %rdi
callq 0x1c7a0
testb %al, %al
je 0x537b9
movq 0xc8(%r14), %rsi
movq (%rsi), %rax
movq %rsp, %rdi
callq *(%rax)
movq 0xd8(%r14), %rsi
movq (%rsi), %rax
leaq 0x20(%rsp), %rdi
callq *(%rax)
addq $0x28, %r14
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x20(%rsp), %rdx
movq %r14, %rcx
callq 0x5941b
leaq 0x48(%rsp), %rdi
movaps -0x8(%rdi), %xmm0
andq $0x0, (%rdi)
movups %xmm0, (%rbx)
andq $0x0, -0x8(%rdi)
callq 0x1d786
leaq 0x28(%rsp), %rdi
callq 0x1d786
leaq 0x8(%rsp), %rdi
callq 0x1d786
leaq 0x70(%rsp), %rdi
callq 0x1cb1a
movq %rbx, %rax
addq $0xa0, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movl $0xa8, %edi
callq 0x101f0
movq %rax, %r15
leaq 0x2559d(%rip), %rsi     # 0x78cb6
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x1c814
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x40(%rsp), %rsi
leaq 0x70(%rsp), %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x3ebb8
xorl %ebp, %ebp
leaq 0x5e555(%rip), %rsi     # 0xb1ca0
leaq -0x242e0(%rip), %rdx    # 0x2f472
movq %r15, %rdi
callq 0x106c0
jmp 0x5384a
movl $0xa8, %edi
callq 0x101f0
movq %rax, %r15
leaq 0x25562(%rip), %rsi     # 0x78cd5
leaq 0x40(%rsp), %rdi
movq %rsp, %rdx
callq 0x1c814
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x40(%rsp), %rsi
leaq 0x70(%rsp), %rcx
movq %r15, %rdi
movq %r14, %rdx
callq 0x3ebb8
xorl %ebp, %ebp
leaq 0x5e4fb(%rip), %rsi     # 0xb1ca0
leaq -0x2433a(%rip), %rdx    # 0x2f472
movq %r15, %rdi
callq 0x106c0
jmp 0x5384a
movl $0xa8, %edi
callq 0x101f0
movq %rax, %r12
leaq 0x2553b(%rip), %rsi     # 0x78d08
movq %rsp, %rdi
leaq 0x6f(%rsp), %rdx
callq 0x1c814
leaq 0x20(%rsp), %rdi
movq %r15, %rsi
callq 0x10550
leaq 0x88(%rsp), %rdi
leaq 0x20(%rsp), %rsi
pushq $0x1
popq %rdx
leaq 0x6e(%rsp), %rcx
callq 0x1f298
leaq 0x40(%rsp), %rdi
movq %rsp, %rsi
leaq 0x88(%rsp), %rdx
callq 0x3f724
addq $0x28, %r14
movb $0x1, %bpl
leaq 0x40(%rsp), %rsi
leaq 0x70(%rsp), %rcx
movq %r12, %rdi
movq %r14, %rdx
callq 0x3ebb8
xorl %ebp, %ebp
leaq 0x5e465(%rip), %rsi     # 0xb1ca0
leaq -0x243d0(%rip), %rdx    # 0x2f472
movq %r12, %rdi
callq 0x106c0
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x101d0
jmp 0x5385f
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x88(%rsp), %rdi
callq 0x1cea0
jmp 0x53874
movq %rax, %rbx
movb $0x1, %bpl
leaq 0x20(%rsp), %rdi
callq 0x101d0
jmp 0x53886
movq %rax, %rbx
movb $0x1, %bpl
movq %rsp, %rdi
callq 0x101d0
testb %bpl, %bpl
jne 0x5389b
jmp 0x53a05
movq %rax, %rbx
movq %r12, %rdi
jmp 0x53905
jmp 0x538e8
jmp 0x538ff
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x101d0
jmp 0x53a05
jmp 0x53a02
movq %rax, %rbx
leaq 0x40(%rsp), %rdi
callq 0x101d0
testb %bpl, %bpl
jne 0x53902
jmp 0x53a05
movq %rax, %rbx
movq %r15, %rdi
callq 0x102e0
jmp 0x53a05
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x539f3
jmp 0x53a02
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
jmp 0x539e4
jmp 0x539f3
jmp 0x53a02
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x1d786
jmp 0x539f6
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x1d786
jmp 0x53a05
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x1cb1a
movq %rbx, %rdi
callq 0x106f0
nop