// File: Nallantli[P]Rossa/main/rossa/node_parser/node_parser.cpp
// Function: node_parser_t::parseEachNode(std::vector<node_scope_t, std::allocator<node_scope_t>>*)
ptr_node_t node_parser_t::parseEachNode(std::vector<node_scope_t> *scopes)
{
	auto marker = currentToken;
	scopes->push_back({ROSSA_HASH("<EACH@" + std::to_string(scope_i++) + ">")});
	nextToken();
	auto id = ROSSA_HASH(currentToken.valueString);
	nextToken();
	if (currentToken.type != TOK_IN)
		return logErrorN(util::format(_EXPECTED_ERROR_, {KEYWORD_IN}), currentToken);
	nextToken();
	auto eachs = parseEquNode(scopes);
	ptr_node_t wheres = nullptr;
	ptr_node_t body = nullptr;

	if (currentToken.type == TOK_WHERE)
	{
		nextToken();
		if (currentToken.type == '{')
		{
			nextToken();
			std::vector<ptr_node_t> where_body;
			while (currentToken.type != NULL_TOK)
			{
				if (currentToken.type == '}')
					break;

				if (auto e = parseExprNode(scopes))
					where_body.push_back(e);
				else
					return logErrorN(_FAILURE_PARSE_CODE_, currentToken);
			}
			if (currentToken.type != '}')
				return logErrorN(util::format(_EXPECTED_ERROR_, {"}"}), currentToken);
			nextToken();
			wheres = std::make_shared<VectorNode>(*scopes, where_body, true, marker);
		}
		else
		{
			wheres = parseEquNode(scopes);
			if (!wheres)
				return logErrorN(_FAILURE_PARSE_CODE_, currentToken);
		}
	}

	if (currentToken.type == TOK_DO)
	{
		nextToken();
		if (currentToken.type == '{')
		{
			nextToken();
			std::vector<ptr_node_t> body_body;
			while (currentToken.type != NULL_TOK)
			{
				if (currentToken.type == '}')
					break;

				if (auto e = parseExprNode(scopes))
					body_body.push_back(e);
				else
					return logErrorN(_FAILURE_PARSE_CODE_, currentToken);
			}
			if (currentToken.type != '}')
				return logErrorN(util::format(_EXPECTED_ERROR_, {"}"}), currentToken);
			nextToken();
			body = std::make_shared<VectorNode>(*scopes, body_body, true, marker);
		}
		else
		{
			body = parseEquNode(scopes);
			if (!body)
				return logErrorN(_FAILURE_PARSE_CODE_, currentToken);
		}
	}

	scopes->pop_back();
	return std::make_shared<EachNode>(*scopes, id, eachs, wheres, body, marker);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x610, %rsp            # imm = 0x610
movq %rdi, -0x4b8(%rbp)
movq %rdi, %rax
movq %rax, -0x4b0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rsi
movq %rsi, -0x4a8(%rbp)
addq $0x58, %rsi
leaq -0x98(%rbp), %rdi
callq 0x2ee00
movq -0x4a8(%rbp), %rax
movq -0x18(%rbp), %rcx
movq %rcx, -0x4a0(%rbp)
leaq -0xb8(%rbp), %rcx
movq %rcx, -0x498(%rbp)
movq (%rax), %rsi
movq %rsi, %rcx
incq %rcx
movq %rcx, (%rax)
leaq -0x118(%rbp), %rdi
callq 0x58780
jmp 0x4df3d
leaq 0x103439(%rip), %rsi    # 0x15137d
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rdx
callq 0x24cb0
jmp 0x4df59
leaq 0x102400(%rip), %rdx    # 0x150360
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x24c60
jmp 0x4df75
leaq 0x197b1c(%rip), %rdi    # 0x1e5a98
leaq -0xd8(%rbp), %rsi
callq 0x2cb10
movq %rax, -0x4c0(%rbp)
jmp 0x4df91
movq -0x498(%rbp), %rax
movq -0x4c0(%rbp), %rcx
movq %rcx, (%rax)
leaq -0xb0(%rbp), %rdi
xorps %xmm0, %xmm0
movups %xmm0, -0xb0(%rbp)
movq $0x0, -0xa0(%rbp)
callq 0x2ccf0
movq -0x4a0(%rbp), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x2ccc0
jmp 0x4dfd8
leaq -0xb8(%rbp), %rdi
callq 0x2cd10
leaq -0xd8(%rbp), %rdi
callq 0x11360
leaq -0xf8(%rbp), %rdi
callq 0x11360
leaq -0x118(%rbp), %rdi
callq 0x11360
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4e016
movq -0x4a8(%rbp), %rsi
addq $0xb0, %rsi
leaq 0x197a6d(%rip), %rdi    # 0x1e5a98
callq 0x2cb10
movq %rax, -0x4c8(%rbp)
jmp 0x4e039
movq -0x4a8(%rbp), %rdi
movq -0x4c8(%rbp), %rax
movq %rax, -0x130(%rbp)
callq 0x38fd0
jmp 0x4e055
movq -0x4a8(%rbp), %rax
cmpl $-0x8, 0xd0(%rax)
je 0x4e40c
leaq -0x171(%rbp), %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x119d0
movq -0x4d0(%rbp), %rdx
leaq 0x103106(%rip), %rsi    # 0x151190
leaq -0x170(%rbp), %rdi
callq 0x24740
jmp 0x4e098
movb $0x1, -0x1ca(%rbp)
leaq -0x1c0(%rbp), %rax
movq %rax, -0x4e0(%rbp)
movq %rax, -0x1c8(%rbp)
leaq -0x1c9(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x119d0
movq -0x4e0(%rbp), %rdi
movq -0x4d8(%rbp), %rdx
leaq 0x102695(%rip), %rsi    # 0x150771
callq 0x24740
jmp 0x4e0e3
movb $0x0, -0x1ca(%rbp)
leaq -0x1c0(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movq $0x1, -0x198(%rbp)
leaq -0x1cb(%rbp), %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x26e30
movq -0x4e8(%rbp), %rcx
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdx
leaq -0x190(%rbp), %rdi
callq 0x2d6a0
jmp 0x4e139
leaq -0x150(%rbp), %rdi
leaq -0x170(%rbp), %rsi
leaq -0x190(%rbp), %rdx
callq 0x9e250
jmp 0x4e155
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x150(%rbp), %rdx
callq 0x3f820
jmp 0x4e178
leaq -0x150(%rbp), %rdi
callq 0x11360
leaq -0x190(%rbp), %rdi
callq 0x25b00
leaq -0x1cb(%rbp), %rdi
callq 0x279c0
leaq -0x1c0(%rbp), %rax
movq %rax, -0x4f8(%rbp)
addq $0x20, %rax
movq %rax, -0x4f0(%rbp)
movq -0x4f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x500(%rbp)
callq 0x11360
movq -0x4f8(%rbp), %rcx
movq -0x500(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4f0(%rbp)
jne 0x4e1b5
leaq -0x1c9(%rbp), %rdi
callq 0x11600
leaq -0x170(%rbp), %rdi
callq 0x11360
leaq -0x171(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4f25f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4f27b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e2a2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e296
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e28a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x2cd10
leaq -0xd8(%rbp), %rdi
callq 0x11360
leaq -0xf8(%rbp), %rdi
callq 0x11360
leaq -0x118(%rbp), %rdi
callq 0x11360
jmp 0x4f27b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e3fb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e38b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e327
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x150(%rbp), %rdi
callq 0x11360
leaq -0x190(%rbp), %rdi
callq 0x25b00
leaq -0x1cb(%rbp), %rdi
callq 0x279c0
leaq -0x1c0(%rbp), %rax
movq %rax, -0x510(%rbp)
addq $0x20, %rax
movq %rax, -0x508(%rbp)
movq -0x508(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x518(%rbp)
callq 0x11360
movq -0x510(%rbp), %rcx
movq -0x518(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x508(%rbp)
jne 0x4e358
jmp 0x4e38b
leaq -0x1c9(%rbp), %rdi
callq 0x11600
testb $0x1, -0x1ca(%rbp)
jne 0x4e3a2
jmp 0x4e3ef
movq -0x1c8(%rbp), %rax
leaq -0x1c0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x520(%rbp)
je 0x4e3ed
movq -0x520(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x528(%rbp)
callq 0x11360
movq -0x528(%rbp), %rax
leaq -0x1c0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x520(%rbp)
jne 0x4e3bc
jmp 0x4e3ef
leaq -0x170(%rbp), %rdi
callq 0x11360
leaq -0x171(%rbp), %rdi
callq 0x11600
jmp 0x4f27b
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4e41a
movq -0x4a8(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x3f500
jmp 0x4e433
leaq -0x1f0(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x58bf0
leaq -0x200(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x58bf0
movq -0x4a8(%rbp), %rax
cmpl $-0x3f, 0xd0(%rax)
jne 0x4eb08
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4e475
movq -0x4a8(%rbp), %rax
cmpl $0x7b, 0xd0(%rax)
jne 0x4e9fc
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4e497
leaq -0x218(%rbp), %rdi
callq 0x57390
movq -0x4a8(%rbp), %rax
cmpl $0x0, 0xd0(%rax)
je 0x4e648
movq -0x4a8(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
jne 0x4e4e3
jmp 0x4e648
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4f239
movq -0x4a8(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x228(%rbp), %rdi
callq 0x39980
jmp 0x4e4fc
leaq -0x228(%rbp), %rdi
callq 0x57630
testb $0x1, %al
jne 0x4e50e
jmp 0x4e556
leaq -0x218(%rbp), %rdi
leaq -0x228(%rbp), %rsi
callq 0x57650
jmp 0x4e523
jmp 0x4e60c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e9eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e637
leaq -0x249(%rbp), %rdi
movq %rdi, -0x530(%rbp)
callq 0x119d0
movq -0x530(%rbp), %rdx
leaq 0x102caf(%rip), %rsi    # 0x151226
leaq -0x248(%rbp), %rdi
callq 0x24740
jmp 0x4e585
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x248(%rbp), %rdx
callq 0x3f820
jmp 0x4e5a8
leaq -0x248(%rbp), %rdi
callq 0x11360
leaq -0x249(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4e616
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e5fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x11360
leaq -0x249(%rbp), %rdi
callq 0x11600
jmp 0x4e637
movl $0x0, -0x1d0(%rbp)
leaq -0x228(%rbp), %rdi
callq 0x24b20
movl -0x1d0(%rbp), %eax
testl %eax, %eax
jne 0x4e9ca
jmp 0x4e632
jmp 0x4e4a3
leaq -0x228(%rbp), %rdi
callq 0x24b20
jmp 0x4e9eb
movq -0x4a8(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
je 0x4e965
leaq -0x291(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x119d0
movq -0x538(%rbp), %rdx
leaq 0x102b13(%rip), %rsi    # 0x151190
leaq -0x290(%rbp), %rdi
callq 0x24740
jmp 0x4e68b
movb $0x1, -0x2ea(%rbp)
leaq -0x2e0(%rbp), %rax
movq %rax, -0x548(%rbp)
movq %rax, -0x2e8(%rbp)
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x540(%rbp)
callq 0x119d0
movq -0x548(%rbp), %rdi
movq -0x540(%rbp), %rdx
leaq 0x106c3a(%rip), %rsi    # 0x155309
callq 0x24740
jmp 0x4e6d6
movb $0x0, -0x2ea(%rbp)
leaq -0x2e0(%rbp), %rax
movq %rax, -0x2c0(%rbp)
movq $0x1, -0x2b8(%rbp)
leaq -0x2eb(%rbp), %rdi
movq %rdi, -0x550(%rbp)
callq 0x26e30
movq -0x550(%rbp), %rcx
movq -0x2c0(%rbp), %rsi
movq -0x2b8(%rbp), %rdx
leaq -0x2b0(%rbp), %rdi
callq 0x2d6a0
jmp 0x4e72c
leaq -0x270(%rbp), %rdi
leaq -0x290(%rbp), %rsi
leaq -0x2b0(%rbp), %rdx
callq 0x9e250
jmp 0x4e748
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x270(%rbp), %rdx
callq 0x3f820
jmp 0x4e76b
leaq -0x270(%rbp), %rdi
callq 0x11360
leaq -0x2b0(%rbp), %rdi
callq 0x25b00
leaq -0x2eb(%rbp), %rdi
callq 0x279c0
leaq -0x2e0(%rbp), %rax
movq %rax, -0x560(%rbp)
addq $0x20, %rax
movq %rax, -0x558(%rbp)
movq -0x558(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x568(%rbp)
callq 0x11360
movq -0x560(%rbp), %rcx
movq -0x568(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x558(%rbp)
jne 0x4e7a8
leaq -0x2e9(%rbp), %rdi
callq 0x11600
leaq -0x290(%rbp), %rdi
callq 0x11360
leaq -0x291(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4e9ca
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e954
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e8e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e88c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4e880
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x11360
leaq -0x2b0(%rbp), %rdi
callq 0x25b00
leaq -0x2eb(%rbp), %rdi
callq 0x279c0
leaq -0x2e0(%rbp), %rax
movq %rax, -0x578(%rbp)
addq $0x20, %rax
movq %rax, -0x570(%rbp)
movq -0x570(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x580(%rbp)
callq 0x11360
movq -0x578(%rbp), %rcx
movq -0x580(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x570(%rbp)
jne 0x4e8b1
jmp 0x4e8e4
leaq -0x2e9(%rbp), %rdi
callq 0x11600
testb $0x1, -0x2ea(%rbp)
jne 0x4e8fb
jmp 0x4e948
movq -0x2e8(%rbp), %rax
leaq -0x2e0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x588(%rbp)
je 0x4e946
movq -0x588(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x590(%rbp)
callq 0x11360
movq -0x590(%rbp), %rax
leaq -0x2e0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x588(%rbp)
jne 0x4e915
jmp 0x4e948
leaq -0x290(%rbp), %rdi
callq 0x11360
leaq -0x291(%rbp), %rdi
callq 0x11600
jmp 0x4e9eb
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4e973
movq -0x18(%rbp), %rsi
movb $0x1, -0x301(%rbp)
leaq -0x300(%rbp), %rdi
leaq -0x218(%rbp), %rdx
leaq -0x301(%rbp), %rcx
leaq -0x98(%rbp), %r8
callq 0x573e0
jmp 0x4e9a1
leaq -0x1f0(%rbp), %rdi
leaq -0x300(%rbp), %rsi
callq 0x59db0
leaq -0x300(%rbp), %rdi
callq 0x574a0
movl $0x0, -0x1d0(%rbp)
leaq -0x218(%rbp), %rdi
callq 0x574c0
movl -0x1d0(%rbp), %eax
testl %eax, %eax
jne 0x4f213
jmp 0x4e9e6
jmp 0x4eb06
leaq -0x218(%rbp), %rdi
callq 0x574c0
jmp 0x4f239
movq -0x4a8(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x318(%rbp), %rdi
callq 0x3f500
jmp 0x4ea15
leaq -0x1f0(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x577a0
leaq -0x318(%rbp), %rdi
callq 0x24b20
leaq -0x1f0(%rbp), %rdi
callq 0x57630
testb $0x1, %al
jne 0x4eb04
leaq -0x339(%rbp), %rdi
movq %rdi, -0x598(%rbp)
callq 0x119d0
movq -0x598(%rbp), %rdx
leaq 0x1027bd(%rip), %rsi    # 0x151226
leaq -0x338(%rbp), %rdi
callq 0x24740
jmp 0x4ea77
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x338(%rbp), %rdx
callq 0x3f820
jmp 0x4ea9a
leaq -0x338(%rbp), %rdi
callq 0x11360
leaq -0x339(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4f213
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4eaf3
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x11360
leaq -0x339(%rbp), %rdi
callq 0x11600
jmp 0x4f239
jmp 0x4eb06
jmp 0x4eb08
movq -0x4a8(%rbp), %rax
cmpl $-0xa, 0xd0(%rax)
jne 0x4f1a6
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4eb2a
movq -0x4a8(%rbp), %rax
cmpl $0x7b, 0xd0(%rax)
jne 0x4f09a
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4eb4c
leaq -0x358(%rbp), %rdi
callq 0x57390
movq -0x4a8(%rbp), %rax
cmpl $0x0, 0xd0(%rax)
je 0x4ece6
movq -0x4a8(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
jne 0x4eb81
jmp 0x4ece6
movq -0x4a8(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x368(%rbp), %rdi
callq 0x39980
jmp 0x4eb9a
leaq -0x368(%rbp), %rdi
callq 0x57630
testb $0x1, %al
jne 0x4ebac
jmp 0x4ebf4
leaq -0x358(%rbp), %rdi
leaq -0x368(%rbp), %rsi
callq 0x57650
jmp 0x4ebc1
jmp 0x4ecaa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4f089
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ecd5
leaq -0x389(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x119d0
movq -0x5a0(%rbp), %rdx
leaq 0x102611(%rip), %rsi    # 0x151226
leaq -0x388(%rbp), %rdi
callq 0x24740
jmp 0x4ec23
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x388(%rbp), %rdx
callq 0x3f820
jmp 0x4ec46
leaq -0x388(%rbp), %rdi
callq 0x11360
leaq -0x389(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4ecb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ec9c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x388(%rbp), %rdi
callq 0x11360
leaq -0x389(%rbp), %rdi
callq 0x11600
jmp 0x4ecd5
movl $0x0, -0x1d0(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x24b20
movl -0x1d0(%rbp), %eax
testl %eax, %eax
jne 0x4f068
jmp 0x4ecd0
jmp 0x4eb58
leaq -0x368(%rbp), %rdi
callq 0x24b20
jmp 0x4f089
movq -0x4a8(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
je 0x4f003
leaq -0x3d1(%rbp), %rdi
movq %rdi, -0x5a8(%rbp)
callq 0x119d0
movq -0x5a8(%rbp), %rdx
leaq 0x102475(%rip), %rsi    # 0x151190
leaq -0x3d0(%rbp), %rdi
callq 0x24740
jmp 0x4ed29
movb $0x1, -0x42a(%rbp)
leaq -0x420(%rbp), %rax
movq %rax, -0x5b8(%rbp)
movq %rax, -0x428(%rbp)
leaq -0x429(%rbp), %rdi
movq %rdi, -0x5b0(%rbp)
callq 0x119d0
movq -0x5b8(%rbp), %rdi
movq -0x5b0(%rbp), %rdx
leaq 0x10659c(%rip), %rsi    # 0x155309
callq 0x24740
jmp 0x4ed74
movb $0x0, -0x42a(%rbp)
leaq -0x420(%rbp), %rax
movq %rax, -0x400(%rbp)
movq $0x1, -0x3f8(%rbp)
leaq -0x42b(%rbp), %rdi
movq %rdi, -0x5c0(%rbp)
callq 0x26e30
movq -0x5c0(%rbp), %rcx
movq -0x400(%rbp), %rsi
movq -0x3f8(%rbp), %rdx
leaq -0x3f0(%rbp), %rdi
callq 0x2d6a0
jmp 0x4edca
leaq -0x3b0(%rbp), %rdi
leaq -0x3d0(%rbp), %rsi
leaq -0x3f0(%rbp), %rdx
callq 0x9e250
jmp 0x4ede6
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x3b0(%rbp), %rdx
callq 0x3f820
jmp 0x4ee09
leaq -0x3b0(%rbp), %rdi
callq 0x11360
leaq -0x3f0(%rbp), %rdi
callq 0x25b00
leaq -0x42b(%rbp), %rdi
callq 0x279c0
leaq -0x420(%rbp), %rax
movq %rax, -0x5d0(%rbp)
addq $0x20, %rax
movq %rax, -0x5c8(%rbp)
movq -0x5c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x5d8(%rbp)
callq 0x11360
movq -0x5d0(%rbp), %rcx
movq -0x5d8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5c8(%rbp)
jne 0x4ee46
leaq -0x429(%rbp), %rdi
callq 0x11600
leaq -0x3d0(%rbp), %rdi
callq 0x11360
leaq -0x3d1(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4f068
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4eff2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ef82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ef2a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4ef1e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x3b0(%rbp), %rdi
callq 0x11360
leaq -0x3f0(%rbp), %rdi
callq 0x25b00
leaq -0x42b(%rbp), %rdi
callq 0x279c0
leaq -0x420(%rbp), %rax
movq %rax, -0x5e8(%rbp)
addq $0x20, %rax
movq %rax, -0x5e0(%rbp)
movq -0x5e0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x5f0(%rbp)
callq 0x11360
movq -0x5e8(%rbp), %rcx
movq -0x5f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5e0(%rbp)
jne 0x4ef4f
jmp 0x4ef82
leaq -0x429(%rbp), %rdi
callq 0x11600
testb $0x1, -0x42a(%rbp)
jne 0x4ef99
jmp 0x4efe6
movq -0x428(%rbp), %rax
leaq -0x420(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x5f8(%rbp)
je 0x4efe4
movq -0x5f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x600(%rbp)
callq 0x11360
movq -0x600(%rbp), %rax
leaq -0x420(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x5f8(%rbp)
jne 0x4efb3
jmp 0x4efe6
leaq -0x3d0(%rbp), %rdi
callq 0x11360
leaq -0x3d1(%rbp), %rdi
callq 0x11600
jmp 0x4f089
movq -0x4a8(%rbp), %rdi
callq 0x38fd0
jmp 0x4f011
movq -0x18(%rbp), %rsi
movb $0x1, -0x441(%rbp)
leaq -0x440(%rbp), %rdi
leaq -0x358(%rbp), %rdx
leaq -0x441(%rbp), %rcx
leaq -0x98(%rbp), %r8
callq 0x573e0
jmp 0x4f03f
leaq -0x200(%rbp), %rdi
leaq -0x440(%rbp), %rsi
callq 0x59db0
leaq -0x440(%rbp), %rdi
callq 0x574a0
movl $0x0, -0x1d0(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x574c0
movl -0x1d0(%rbp), %eax
testl %eax, %eax
jne 0x4f213
jmp 0x4f084
jmp 0x4f1a4
leaq -0x358(%rbp), %rdi
callq 0x574c0
jmp 0x4f239
movq -0x4a8(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x458(%rbp), %rdi
callq 0x3f500
jmp 0x4f0b3
leaq -0x200(%rbp), %rdi
leaq -0x458(%rbp), %rsi
callq 0x577a0
leaq -0x458(%rbp), %rdi
callq 0x24b20
leaq -0x200(%rbp), %rdi
callq 0x57630
testb $0x1, %al
jne 0x4f1a2
leaq -0x479(%rbp), %rdi
movq %rdi, -0x608(%rbp)
callq 0x119d0
movq -0x608(%rbp), %rdx
leaq 0x10211f(%rip), %rsi    # 0x151226
leaq -0x478(%rbp), %rdi
callq 0x24740
jmp 0x4f115
movq -0x4a8(%rbp), %rsi
movq -0x4b8(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x478(%rbp), %rdx
callq 0x3f820
jmp 0x4f138
leaq -0x478(%rbp), %rdi
callq 0x11360
leaq -0x479(%rbp), %rdi
callq 0x11600
movl $0x1, -0x1d0(%rbp)
jmp 0x4f213
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
jmp 0x4f191
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x120(%rbp)
movl %eax, -0x124(%rbp)
leaq -0x478(%rbp), %rdi
callq 0x11360
leaq -0x479(%rbp), %rdi
callq 0x11600
jmp 0x4f239
jmp 0x4f1a4
jmp 0x4f1a6
movq -0x18(%rbp), %rdi
callq 0x58270
movq -0x18(%rbp), %rsi
movq %rsp, %rax
leaq -0x98(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x490(%rbp), %rdi
leaq -0x130(%rbp), %rdx
leaq -0x1e0(%rbp), %rcx
leaq -0x1f0(%rbp), %r8
leaq -0x200(%rbp), %r9
callq 0x59de0
jmp 0x4f1ea
movq -0x4b8(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x59e80
leaq -0x490(%rbp), %rdi
callq 0x59eb0
movl $0x1, -0x1d0(%rbp)
leaq -0x200(%rbp), %rdi
callq 0x24b20
leaq -0x1f0(%rbp), %rdi
callq 0x24b20
leaq -0x1e0(%rbp), %rdi
callq 0x24b20
jmp 0x4f25f
leaq -0x200(%rbp), %rdi
callq 0x24b20
leaq -0x1f0(%rbp), %rdi
callq 0x24b20
leaq -0x1e0(%rbp), %rdi
callq 0x24b20
jmp 0x4f27b
leaq -0x98(%rbp), %rdi
callq 0x2a480
movq -0x4b0(%rbp), %rax
addq $0x610, %rsp            # imm = 0x610
popq %rbp
retq
leaq -0x98(%rbp), %rdi
callq 0x2a480
movq -0x120(%rbp), %rdi
callq 0x119c0
nopw %cs:(%rax,%rax)