// File: Nallantli[P]Rossa/main/rossa/node/node.cpp
// Function: BinOpNode::fold(std::vector<std::pair<std::vector<unsigned long long, std::allocator<unsigned long long>>, symbol_t>, std::allocator<std::pair<std::vector<unsigned long long, std::allocator<unsigned long long>>, symbol_t>>> const&) const
const ptr_node_t BinOpNode::fold(const std::vector<std::pair<std::vector<hash_ull>, symbol_t>> &consts) const
{
	if (op == "+=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "+", a, b, token), token)->fold(consts);
	if (op == "-=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "-", a, b, token), token)->fold(consts);
	if (op == "*=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "*", a, b, token), token)->fold(consts);
	if (op == "/=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "/", a, b, token), token)->fold(consts);
	if (op == "//=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "//", a, b, token), token)->fold(consts);
	if (op == "%=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "%", a, b, token), token)->fold(consts);
	if (op == "**=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "**", a, b, token), token)->fold(consts);
	if (op == "|=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "|", a, b, token), token)->fold(consts);
	if (op == "&=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "&", a, b, token), token)->fold(consts);
	if (op == "^=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "^", a, b, token), token)->fold(consts);
	if (op == "<<=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "<<", a, b, token), token)->fold(consts);
	if (op == ">>=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, ">>", a, b, token), token)->fold(consts);
	if (op == "++=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "++", a, b, token), token)->fold(consts);
	if (op == "&&=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "&&", a, b, token), token)->fold(consts);
	if (op == "||=")
		return std::make_shared<BinOpNode>(path, "=", a, std::make_shared<BinOpNode>(path, "||", a, b, token), token)->fold(consts);

	auto na = a->fold(consts);
	auto nb = b->fold(consts);

	bool constmod = false;

	if (a->isConst() && b->isConst())
	{
		try
		{
			object_t newScope(static_cast<hash_ull>(0));
			trace_t stack_trace;
			genParser()->evaluate(&newScope, stack_trace);
			constmod = true;
		}
		catch (const rossa_error_t &e)
		{
		}
	}

	if (constmod)
	{
		object_t newScope(static_cast<hash_ull>(0));
		trace_t stack_trace;
		auto evalA = na->genParser()->evaluate(&newScope, stack_trace);
		auto evalB = nb->genParser()->evaluate(&newScope, stack_trace);
		auto r = genParser()->evaluate(&newScope, stack_trace);
		return std::make_shared<ContainerNode>(path, r, token);
	}

	return std::make_shared<BinOpNode>(path, op, na, b->fold(consts), token);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x560, %rsp            # imm = 0x560
movq %rdi, -0x368(%rbp)
movq %rdi, %rax
movq %rax, -0x360(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x358(%rbp)
addq $0xa8, %rdi
leaq 0x738ed(%rip), %rsi     # 0x15004e
callq 0x24630
testb $0x1, %al
jne 0xdc76f
jmp 0xdc859
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x388(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x380(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x370(%rbp)
leaq 0x73862(%rip), %rdx     # 0x150013
leaq -0x38(%rbp), %rdi
movq %rdi, -0x378(%rbp)
callq 0xe8ad0
movq -0x388(%rbp), %rsi
movq -0x380(%rbp), %rcx
movq -0x378(%rbp), %r8
movq -0x370(%rbp), %r9
leaq 0x73845(%rip), %rdx     # 0x150029
leaq -0x28(%rbp), %rdi
callq 0xe8a30
jmp 0xdc7ef
leaq -0x28(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdc811
leaq -0x28(%rbp), %rdi
callq 0x58bd0
leaq -0x38(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdc84b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x28(%rbp), %rdi
callq 0x58bd0
leaq -0x38(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x737e3(%rip), %rsi     # 0x150051
callq 0x24630
testb $0x1, %al
jne 0xdc87c
jmp 0xdc966
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x3a8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x3a0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x390(%rbp)
leaq 0x73757(%rip), %rdx     # 0x150015
leaq -0x68(%rbp), %rdi
movq %rdi, -0x398(%rbp)
callq 0xe8ad0
movq -0x3a8(%rbp), %rsi
movq -0x3a0(%rbp), %rcx
movq -0x398(%rbp), %r8
movq -0x390(%rbp), %r9
leaq 0x73738(%rip), %rdx     # 0x150029
leaq -0x58(%rbp), %rdi
callq 0xe8a30
jmp 0xdc8fc
leaq -0x58(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdc91e
leaq -0x58(%rbp), %rdi
callq 0x58bd0
leaq -0x68(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdc958
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x58bd0
leaq -0x68(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x736c8(%rip), %rsi     # 0x150043
callq 0x24630
testb $0x1, %al
jne 0xdc989
jmp 0xdca7c
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x3c8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x3c0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x3b0(%rbp)
leaq 0x73640(%rip), %rdx     # 0x15000b
leaq -0x88(%rbp), %rdi
movq %rdi, -0x3b8(%rbp)
callq 0xe8ad0
movq -0x3c8(%rbp), %rsi
movq -0x3c0(%rbp), %rcx
movq -0x3b8(%rbp), %r8
movq -0x3b0(%rbp), %r9
leaq 0x73628(%rip), %rdx     # 0x150029
leaq -0x78(%rbp), %rdi
callq 0xe8a30
jmp 0xdca0c
leaq -0x78(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdca2e
leaq -0x78(%rbp), %rdi
callq 0x58bd0
leaq -0x88(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdca6b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x78(%rbp), %rdi
callq 0x58bd0
leaq -0x88(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x735b6(%rip), %rsi     # 0x150047
callq 0x24630
testb $0x1, %al
jne 0xdca9f
jmp 0xdcb9e
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x3e8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x3e0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x3d0(%rbp)
leaq 0x7352d(%rip), %rdx     # 0x15000e
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0xe8ad0
movq -0x3e8(%rbp), %rsi
movq -0x3e0(%rbp), %rcx
movq -0x3d8(%rbp), %r8
movq -0x3d0(%rbp), %r9
leaq 0x73512(%rip), %rdx     # 0x150029
leaq -0x98(%rbp), %rdi
callq 0xe8a30
jmp 0xdcb25
leaq -0x98(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdcb4a
leaq -0x98(%rbp), %rdi
callq 0x58bd0
leaq -0xa8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdcb8d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x58bd0
leaq -0xa8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x73493(%rip), %rsi     # 0x150046
callq 0x24630
testb $0x1, %al
jne 0xdcbc1
jmp 0xdccc0
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x408(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x400(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x3f0(%rbp)
leaq 0x7340a(%rip), %rdx     # 0x15000d
leaq -0xc8(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0xe8b90
movq -0x408(%rbp), %rsi
movq -0x400(%rbp), %rcx
movq -0x3f8(%rbp), %r8
movq -0x3f0(%rbp), %r9
leaq 0x733f0(%rip), %rdx     # 0x150029
leaq -0xb8(%rbp), %rdi
callq 0xe8a30
jmp 0xdcc47
leaq -0xb8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdcc6c
leaq -0xb8(%rbp), %rdi
callq 0x58bd0
leaq -0xc8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdccaf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x58bd0
leaq -0xc8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x73375(%rip), %rsi     # 0x15004a
callq 0x24630
testb $0x1, %al
jne 0xdcce3
jmp 0xdcde2
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x428(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x420(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x410(%rbp)
leaq 0x732eb(%rip), %rdx     # 0x150010
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0xe8ad0
movq -0x428(%rbp), %rsi
movq -0x420(%rbp), %rcx
movq -0x418(%rbp), %r8
movq -0x410(%rbp), %r9
leaq 0x732ce(%rip), %rdx     # 0x150029
leaq -0xd8(%rbp), %rdi
callq 0xe8a30
jmp 0xdcd69
leaq -0xd8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdcd8e
leaq -0xd8(%rbp), %rdi
callq 0x58bd0
leaq -0xe8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdcdd1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xd8(%rbp), %rdi
callq 0x58bd0
leaq -0xe8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x7324b(%rip), %rsi     # 0x150042
callq 0x24630
testb $0x1, %al
jne 0xdce05
jmp 0xdcf04
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x448(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x440(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x430(%rbp)
leaq 0x731c3(%rip), %rdx     # 0x15000a
leaq -0x108(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0xe8b90
movq -0x448(%rbp), %rsi
movq -0x440(%rbp), %rcx
movq -0x438(%rbp), %r8
movq -0x430(%rbp), %r9
leaq 0x731ac(%rip), %rdx     # 0x150029
leaq -0xf8(%rbp), %rdi
callq 0xe8a30
jmp 0xdce8b
leaq -0xf8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdceb0
leaq -0xf8(%rbp), %rdi
callq 0x58bd0
leaq -0x108(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdcef3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0xf8(%rbp), %rdi
callq 0x58bd0
leaq -0x108(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x7313f(%rip), %rsi     # 0x150058
callq 0x24630
testb $0x1, %al
jne 0xdcf27
jmp 0xdd026
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x468(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x460(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x450(%rbp)
leaq 0x730ca(%rip), %rdx     # 0x150033
leaq -0x128(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0xe8ad0
movq -0x468(%rbp), %rsi
movq -0x460(%rbp), %rcx
movq -0x458(%rbp), %r8
movq -0x450(%rbp), %r9
leaq 0x7308a(%rip), %rdx     # 0x150029
leaq -0x118(%rbp), %rdi
callq 0xe8a30
jmp 0xdcfad
leaq -0x118(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdcfd2
leaq -0x118(%rbp), %rdi
callq 0x58bd0
leaq -0x128(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd015
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x58bd0
leaq -0x128(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x73021(%rip), %rsi     # 0x15005c
callq 0x24630
testb $0x1, %al
jne 0xdd049
jmp 0xdd148
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x488(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x480(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x470(%rbp)
leaq 0x72fa5(%rip), %rdx     # 0x150030
leaq -0x148(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0xe8ad0
movq -0x488(%rbp), %rsi
movq -0x480(%rbp), %rcx
movq -0x478(%rbp), %r8
movq -0x470(%rbp), %r9
leaq 0x72f68(%rip), %rdx     # 0x150029
leaq -0x138(%rbp), %rdi
callq 0xe8a30
jmp 0xdd0cf
leaq -0x138(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd0f4
leaq -0x138(%rbp), %rdi
callq 0x58bd0
leaq -0x148(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd137
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x58bd0
leaq -0x148(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72ef7(%rip), %rsi     # 0x150054
callq 0x24630
testb $0x1, %al
jne 0xdd16b
jmp 0xdd26a
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x4a8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x4a0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x490(%rbp)
leaq 0x72e80(%rip), %rdx     # 0x15002d
leaq -0x168(%rbp), %rdi
movq %rdi, -0x498(%rbp)
callq 0xe8ad0
movq -0x4a8(%rbp), %rsi
movq -0x4a0(%rbp), %rcx
movq -0x498(%rbp), %r8
movq -0x490(%rbp), %r9
leaq 0x72e46(%rip), %rdx     # 0x150029
leaq -0x158(%rbp), %rdi
callq 0xe8a30
jmp 0xdd1f1
leaq -0x158(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd216
leaq -0x158(%rbp), %rdi
callq 0x58bd0
leaq -0x168(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd259
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x158(%rbp), %rdi
callq 0x58bd0
leaq -0x168(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72de4(%rip), %rsi     # 0x150063
callq 0x24630
testb $0x1, %al
jne 0xdd28d
jmp 0xdd38c
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x4c8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x4c0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x4b0(%rbp)
leaq 0x72d48(%rip), %rdx     # 0x150017
leaq -0x188(%rbp), %rdi
movq %rdi, -0x4b8(%rbp)
callq 0xe8b90
movq -0x4c8(%rbp), %rsi
movq -0x4c0(%rbp), %rcx
movq -0x4b8(%rbp), %r8
movq -0x4b0(%rbp), %r9
leaq 0x72d24(%rip), %rdx     # 0x150029
leaq -0x178(%rbp), %rdi
callq 0xe8a30
jmp 0xdd313
leaq -0x178(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd338
leaq -0x178(%rbp), %rdi
callq 0x58bd0
leaq -0x188(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd37b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x178(%rbp), %rdi
callq 0x58bd0
leaq -0x188(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72cbe(%rip), %rsi     # 0x15005f
callq 0x24630
testb $0x1, %al
jne 0xdd3af
jmp 0xdd4ae
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x4e8(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x4e0(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x4d0(%rbp)
leaq 0x72c29(%rip), %rdx     # 0x15001a
leaq -0x1a8(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0xe8b90
movq -0x4e8(%rbp), %rsi
movq -0x4e0(%rbp), %rcx
movq -0x4d8(%rbp), %r8
movq -0x4d0(%rbp), %r9
leaq 0x72c02(%rip), %rdx     # 0x150029
leaq -0x198(%rbp), %rdi
callq 0xe8a30
jmp 0xdd435
leaq -0x198(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd45a
leaq -0x198(%rbp), %rdi
callq 0x58bd0
leaq -0x1a8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd49d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x198(%rbp), %rdi
callq 0x58bd0
leaq -0x1a8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72b8a(%rip), %rsi     # 0x15004d
callq 0x24630
testb $0x1, %al
jne 0xdd4d1
jmp 0xdd5d0
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x508(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x500(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x4f0(%rbp)
leaq 0x72aff(%rip), %rdx     # 0x150012
leaq -0x1c8(%rbp), %rdi
movq %rdi, -0x4f8(%rbp)
callq 0xe8b90
movq -0x508(%rbp), %rsi
movq -0x500(%rbp), %rcx
movq -0x4f8(%rbp), %r8
movq -0x4f0(%rbp), %r9
leaq 0x72ae0(%rip), %rdx     # 0x150029
leaq -0x1b8(%rbp), %rdi
callq 0xe8a30
jmp 0xdd557
leaq -0x1b8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd57c
leaq -0x1b8(%rbp), %rdi
callq 0x58bd0
leaq -0x1c8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd5bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1b8(%rbp), %rdi
callq 0x58bd0
leaq -0x1c8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72a76(%rip), %rsi     # 0x15005b
callq 0x24630
testb $0x1, %al
jne 0xdd5f3
jmp 0xdd6f2
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x528(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x520(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x510(%rbp)
leaq 0x729fa(%rip), %rdx     # 0x15002f
leaq -0x1e8(%rbp), %rdi
movq %rdi, -0x518(%rbp)
callq 0xe8b90
movq -0x528(%rbp), %rsi
movq -0x520(%rbp), %rcx
movq -0x518(%rbp), %r8
movq -0x510(%rbp), %r9
leaq 0x729be(%rip), %rdx     # 0x150029
leaq -0x1d8(%rbp), %rdi
callq 0xe8a30
jmp 0xdd679
leaq -0x1d8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd69e
leaq -0x1d8(%rbp), %rdi
callq 0x58bd0
leaq -0x1e8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd6e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1d8(%rbp), %rdi
callq 0x58bd0
leaq -0x1e8(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xa8, %rdi
leaq 0x72950(%rip), %rsi     # 0x150057
callq 0x24630
testb $0x1, %al
jne 0xdd715
jmp 0xdd814
movq -0x358(%rbp), %r9
movq %r9, %rsi
addq $0x8, %rsi
movq %rsi, -0x548(%rbp)
movq %r9, %rcx
addq $0xc8, %rcx
movq %rcx, -0x540(%rbp)
movq %r9, %r8
addq $0xd8, %r8
addq $0x28, %r9
movq %r9, -0x530(%rbp)
leaq 0x728db(%rip), %rdx     # 0x150032
leaq -0x208(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0xe8b90
movq -0x548(%rbp), %rsi
movq -0x540(%rbp), %rcx
movq -0x538(%rbp), %r8
movq -0x530(%rbp), %r9
leaq 0x7289c(%rip), %rdx     # 0x150029
leaq -0x1f8(%rbp), %rdi
callq 0xe8a30
jmp 0xdd79b
leaq -0x1f8(%rbp), %rdi
callq 0xe8b70
movq -0x368(%rbp), %rdi
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
callq *%rax
jmp 0xdd7c0
leaq -0x1f8(%rbp), %rdi
callq 0x58bd0
leaq -0x208(%rbp), %rdi
callq 0x58bd0
jmp 0xdddc3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd803
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x58bd0
leaq -0x208(%rbp), %rdi
callq 0x58bd0
jmp 0xdddd3
movq -0x358(%rbp), %rdi
addq $0xc8, %rdi
callq 0x2d030
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq -0x218(%rbp), %rdi
callq *%rax
movq -0x358(%rbp), %rdi
addq $0xd8, %rdi
callq 0x2d030
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq -0x228(%rbp), %rdi
callq *%rax
jmp 0xdd86a
movq -0x358(%rbp), %rdi
movb $0x0, -0x229(%rbp)
addq $0xc8, %rdi
callq 0x2d030
movq %rax, %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movb %al, -0x549(%rbp)
jmp 0xdd898
movb -0x549(%rbp), %al
testb $0x1, %al
jne 0xdd8a7
jmp 0xdda24
movq -0x358(%rbp), %rdi
addq $0xd8, %rdi
callq 0x2d030
movq %rax, %rdi
movq (%rdi), %rax
movq 0x8(%rax), %rax
callq *%rax
movb %al, -0x54a(%rbp)
jmp 0xdd8ce
movb -0x54a(%rbp), %al
testb $0x1, %al
jne 0xdd8dd
jmp 0xdda24
movq $0x0, -0x248(%rbp)
leaq -0x240(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x7d410
jmp 0xdd8fd
leaq -0x260(%rbp), %rdi
callq 0x24b80
movq -0x358(%rbp), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x280(%rbp), %rdi
callq *%rax
jmp 0xdd921
leaq -0x280(%rbp), %rdi
callq 0x2d300
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x270(%rbp), %rdi
leaq -0x240(%rbp), %rdx
leaq -0x260(%rbp), %rcx
callq *%rax
jmp 0xdd94f
leaq -0x270(%rbp), %rdi
callq 0x86dc0
leaq -0x280(%rbp), %rdi
callq 0x2a4e0
movb $0x1, -0x229(%rbp)
leaq -0x260(%rbp), %rdi
callq 0x24e60
leaq -0x240(%rbp), %rdi
callq 0x7d790
jmp 0xdda22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdddb5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xddda9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd9f9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xdd9e1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x280(%rbp), %rdi
callq 0x2a4e0
leaq -0x260(%rbp), %rdi
callq 0x24e60
leaq -0x240(%rbp), %rdi
callq 0x7d790
movl -0x44(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xddda9
movq -0x40(%rbp), %rdi
callq 0x11220
movq %rax, -0x288(%rbp)
callq 0x11910
jmp 0xdda20
jmp 0xdda22
jmp 0xdda24
testb $0x1, -0x229(%rbp)
je 0xddcbf
movq $0x0, -0x2a0(%rbp)
leaq -0x298(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x7d410
jmp 0xdda51
leaq -0x2b8(%rbp), %rdi
callq 0x24b80
leaq -0x218(%rbp), %rdi
callq 0x2d030
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x2d8(%rbp), %rdi
callq *%rax
jmp 0xdda7d
leaq -0x2d8(%rbp), %rdi
callq 0x2d300
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x2c8(%rbp), %rdi
leaq -0x298(%rbp), %rdx
leaq -0x2b8(%rbp), %rcx
callq *%rax
jmp 0xddaab
leaq -0x2d8(%rbp), %rdi
callq 0x2a4e0
leaq -0x228(%rbp), %rdi
callq 0x2d030
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x2f8(%rbp), %rdi
callq *%rax
jmp 0xddad7
leaq -0x2f8(%rbp), %rdi
callq 0x2d300
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x2e8(%rbp), %rdi
leaq -0x298(%rbp), %rdx
leaq -0x2b8(%rbp), %rcx
callq *%rax
jmp 0xddb05
leaq -0x2f8(%rbp), %rdi
callq 0x2a4e0
movq -0x358(%rbp), %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x318(%rbp), %rdi
callq *%rax
jmp 0xddb29
leaq -0x318(%rbp), %rdi
callq 0x2d300
movq %rax, %rsi
movq (%rsi), %rax
movq (%rax), %rax
leaq -0x308(%rbp), %rdi
leaq -0x298(%rbp), %rdx
leaq -0x2b8(%rbp), %rcx
callq *%rax
jmp 0xddb57
leaq -0x318(%rbp), %rdi
callq 0x2a4e0
movq -0x358(%rbp), %rcx
movq %rcx, %rsi
addq $0x8, %rsi
addq $0x28, %rcx
leaq -0x328(%rbp), %rdi
leaq -0x308(%rbp), %rdx
callq 0xe5670
jmp 0xddb8a
movq -0x368(%rbp), %rdi
leaq -0x328(%rbp), %rsi
callq 0x571a0
leaq -0x328(%rbp), %rdi
callq 0x571d0
movl $0x1, -0x32c(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x86dc0
leaq -0x2e8(%rbp), %rdi
callq 0x86dc0
leaq -0x2c8(%rbp), %rdi
callq 0x86dc0
leaq -0x2b8(%rbp), %rdi
callq 0x24e60
leaq -0x298(%rbp), %rdi
callq 0x7d790
jmp 0xddd8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xddca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2d8(%rbp), %rdi
callq 0x2a4e0
jmp 0xddca2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xddc96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x2a4e0
jmp 0xddc96
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
jmp 0xddc8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x318(%rbp), %rdi
callq 0x2a4e0
jmp 0xddc8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x308(%rbp), %rdi
callq 0x86dc0
leaq -0x2e8(%rbp), %rdi
callq 0x86dc0
leaq -0x2c8(%rbp), %rdi
callq 0x86dc0
leaq -0x2b8(%rbp), %rdi
callq 0x24e60
leaq -0x298(%rbp), %rdi
callq 0x7d790
jmp 0xddda9
movq -0x358(%rbp), %rdi
movq %rdi, %rax
addq $0x8, %rax
movq %rax, -0x560(%rbp)
movq %rdi, %rax
addq $0xa8, %rax
movq %rax, -0x558(%rbp)
addq $0xd8, %rdi
callq 0x2d030
movq %rax, %rsi
movq -0x18(%rbp), %rdx
movq (%rsi), %rax
movq 0x18(%rax), %rax
leaq -0x350(%rbp), %rdi
callq *%rax
jmp 0xddd09
movq -0x558(%rbp), %rdx
movq -0x560(%rbp), %rsi
movq -0x358(%rbp), %r9
addq $0x28, %r9
leaq -0x340(%rbp), %rdi
leaq -0x218(%rbp), %rcx
leaq -0x350(%rbp), %r8
callq 0xe8c30
jmp 0xddd3e
movq -0x368(%rbp), %rdi
leaq -0x340(%rbp), %rsi
callq 0x58f30
leaq -0x340(%rbp), %rdi
callq 0x58bd0
leaq -0x350(%rbp), %rdi
callq 0x24b20
movl $0x1, -0x32c(%rbp)
jmp 0xddd8f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x350(%rbp), %rdi
callq 0x24b20
jmp 0xddda9
leaq -0x228(%rbp), %rdi
callq 0x24b20
leaq -0x218(%rbp), %rdi
callq 0x24b20
jmp 0xdddc3
leaq -0x228(%rbp), %rdi
callq 0x24b20
leaq -0x218(%rbp), %rdi
callq 0x24b20
jmp 0xdddd3
movq -0x360(%rbp), %rax
addq $0x560, %rsp            # imm = 0x560
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x119c0
nopl (%rax)