// File: Nallantli[P]Rossa/main/rossa/node_parser/node_parser.cpp
// Function: node_parser_t::parseForNode(std::vector<node_scope_t, std::allocator<node_scope_t>>*)
ptr_node_t node_parser_t::parseForNode(std::vector<node_scope_t> *scopes)
{
	scopes->push_back({ROSSA_HASH("<FOR@" + 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 fors = parseEquNode(scopes);
	if (currentToken.type != TOK_DO)
		return logErrorN(util::format(_EXPECTED_ERROR_, {KEYWORD_DO}), currentToken);

	auto marker = currentToken;

	nextToken();
	if (currentToken.type != '{')
		return logErrorN(util::format(_EXPECTED_ERROR_, {"{"}), currentToken);
	nextToken();
	std::vector<ptr_node_t> body;
	while (currentToken.type != NULL_TOK)
	{
		if (currentToken.type == '}')
			break;

		if (auto e = parseExprNode(scopes))
			body.push_back(e);
		else
			return logErrorN(_FAILURE_PARSE_CODE_, currentToken);
	}
	if (currentToken.type != '}')
		return logErrorN(util::format(_EXPECTED_ERROR_, {"}"}), currentToken);
	nextToken();

	scopes->pop_back();
	return std::make_shared<ForNode>(*scopes, id, fors, body, marker);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x5e0, %rsp            # imm = 0x5E0
movq %rdi, -0x450(%rbp)
movq %rdi, %rax
movq %rax, -0x448(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x440(%rbp)
movq -0x18(%rbp), %rcx
movq %rcx, -0x438(%rbp)
leaq -0x38(%rbp), %rcx
movq %rcx, -0x430(%rbp)
movq (%rax), %rsi
movq %rsi, %rcx
incq %rcx
movq %rcx, (%rax)
leaq -0x98(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x58780
movq -0x428(%rbp), %rdx
leaq 0xfd081(%rip), %rsi     # 0x151377
leaq -0x78(%rbp), %rdi
callq 0x24cb0
jmp 0x54301
leaq 0xfc058(%rip), %rdx     # 0x150360
leaq -0x58(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x24c60
jmp 0x54317
leaq 0x19177a(%rip), %rdi    # 0x1e5a98
leaq -0x58(%rbp), %rsi
callq 0x2cb10
movq %rax, -0x458(%rbp)
jmp 0x54330
movq -0x430(%rbp), %rax
movq -0x458(%rbp), %rcx
movq %rcx, (%rax)
leaq -0x30(%rbp), %rdi
xorps %xmm0, %xmm0
movups %xmm0, -0x30(%rbp)
movq $0x0, -0x20(%rbp)
callq 0x2ccf0
movq -0x438(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x2ccc0
jmp 0x5436b
leaq -0x38(%rbp), %rdi
callq 0x2cd10
leaq -0x58(%rbp), %rdi
callq 0x11360
leaq -0x78(%rbp), %rdi
callq 0x11360
leaq -0x98(%rbp), %rdi
callq 0x11360
movq -0x440(%rbp), %rdi
callq 0x38fd0
movq -0x440(%rbp), %rsi
addq $0x58, %rsi
addq $0x58, %rsi
leaq 0x1916e4(%rip), %rdi    # 0x1e5a98
callq 0x2cb10
movq -0x440(%rbp), %rdi
movq %rax, -0xb0(%rbp)
callq 0x38fd0
movq -0x440(%rbp), %rax
cmpl $-0x8, 0xd0(%rax)
je 0x54759
leaq -0xf1(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x119d0
movq -0x460(%rbp), %rdx
leaq 0xfcd8f(%rip), %rsi     # 0x151190
leaq -0xf0(%rbp), %rdi
callq 0x24740
jmp 0x5440f
movb $0x1, -0x14a(%rbp)
leaq -0x140(%rbp), %rax
movq %rax, -0x470(%rbp)
movq %rax, -0x148(%rbp)
leaq -0x149(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x119d0
movq -0x470(%rbp), %rdi
movq -0x468(%rbp), %rdx
leaq 0xfc31e(%rip), %rsi     # 0x150771
callq 0x24740
jmp 0x5445a
movb $0x0, -0x14a(%rbp)
leaq -0x140(%rbp), %rax
movq %rax, -0x120(%rbp)
movq $0x1, -0x118(%rbp)
leaq -0x14b(%rbp), %rdi
movq %rdi, -0x478(%rbp)
callq 0x26e30
movq -0x478(%rbp), %rcx
movq -0x120(%rbp), %rsi
movq -0x118(%rbp), %rdx
leaq -0x110(%rbp), %rdi
callq 0x2d6a0
jmp 0x544b0
leaq -0xd0(%rbp), %rdi
leaq -0xf0(%rbp), %rsi
leaq -0x110(%rbp), %rdx
callq 0x9e250
jmp 0x544cc
movq -0x440(%rbp), %rsi
movq -0x450(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0xd0(%rbp), %rdx
callq 0x3f820
jmp 0x544ef
leaq -0xd0(%rbp), %rdi
callq 0x11360
leaq -0x110(%rbp), %rdi
callq 0x25b00
leaq -0x14b(%rbp), %rdi
callq 0x279c0
leaq -0x140(%rbp), %rax
movq %rax, -0x488(%rbp)
addq $0x20, %rax
movq %rax, -0x480(%rbp)
movq -0x480(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x490(%rbp)
callq 0x11360
movq -0x488(%rbp), %rcx
movq -0x490(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x480(%rbp)
jne 0x5452c
leaq -0x149(%rbp), %rdi
callq 0x11600
leaq -0xf0(%rbp), %rdi
callq 0x11360
leaq -0xf1(%rbp), %rdi
callq 0x11600
jmp 0x5538f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x545ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x545e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x545dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x2cd10
leaq -0x58(%rbp), %rdi
callq 0x11360
leaq -0x78(%rbp), %rdi
callq 0x11360
leaq -0x98(%rbp), %rdi
callq 0x11360
jmp 0x5539f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54748
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x546d8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54680
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54674
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0xd0(%rbp), %rdi
callq 0x11360
leaq -0x110(%rbp), %rdi
callq 0x25b00
leaq -0x14b(%rbp), %rdi
callq 0x279c0
leaq -0x140(%rbp), %rax
movq %rax, -0x4a0(%rbp)
addq $0x20, %rax
movq %rax, -0x498(%rbp)
movq -0x498(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4a8(%rbp)
callq 0x11360
movq -0x4a0(%rbp), %rcx
movq -0x4a8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x498(%rbp)
jne 0x546a5
jmp 0x546d8
leaq -0x149(%rbp), %rdi
callq 0x11600
testb $0x1, -0x14a(%rbp)
jne 0x546ef
jmp 0x5473c
movq -0x148(%rbp), %rax
leaq -0x140(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x4b0(%rbp)
je 0x5473a
movq -0x4b0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4b8(%rbp)
callq 0x11360
movq -0x4b8(%rbp), %rax
leaq -0x140(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4b0(%rbp)
jne 0x54709
jmp 0x5473c
leaq -0xf0(%rbp), %rdi
callq 0x11360
leaq -0xf1(%rbp), %rdi
callq 0x11600
jmp 0x5539f
movq -0x440(%rbp), %rdi
callq 0x38fd0
movq -0x440(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x160(%rbp), %rdi
callq 0x3f500
movq -0x440(%rbp), %rax
cmpl $-0xa, 0xd0(%rax)
je 0x54a99
leaq -0x1a1(%rbp), %rdi
movq %rdi, -0x4c0(%rbp)
callq 0x119d0
movq -0x4c0(%rbp), %rdx
leaq 0xfc9df(%rip), %rsi     # 0x151190
leaq -0x1a0(%rbp), %rdi
callq 0x24740
jmp 0x547bf
movb $0x1, -0x1fa(%rbp)
leaq -0x1f0(%rbp), %rax
movq %rax, -0x4d0(%rbp)
movq %rax, -0x1f8(%rbp)
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x4c8(%rbp)
callq 0x119d0
movq -0x4d0(%rbp), %rdi
movq -0x4c8(%rbp), %rdx
leaq 0xfbf6b(%rip), %rsi     # 0x15076e
callq 0x24740
jmp 0x5480a
movb $0x0, -0x1fa(%rbp)
leaq -0x1f0(%rbp), %rax
movq %rax, -0x1d0(%rbp)
movq $0x1, -0x1c8(%rbp)
leaq -0x1fb(%rbp), %rdi
movq %rdi, -0x4d8(%rbp)
callq 0x26e30
movq -0x4d8(%rbp), %rcx
movq -0x1d0(%rbp), %rsi
movq -0x1c8(%rbp), %rdx
leaq -0x1c0(%rbp), %rdi
callq 0x2d6a0
jmp 0x54860
leaq -0x180(%rbp), %rdi
leaq -0x1a0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdx
callq 0x9e250
jmp 0x5487c
movq -0x440(%rbp), %rsi
movq -0x450(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x180(%rbp), %rdx
callq 0x3f820
jmp 0x5489f
leaq -0x180(%rbp), %rdi
callq 0x11360
leaq -0x1c0(%rbp), %rdi
callq 0x25b00
leaq -0x1fb(%rbp), %rdi
callq 0x279c0
leaq -0x1f0(%rbp), %rax
movq %rax, -0x4e8(%rbp)
addq $0x20, %rax
movq %rax, -0x4e0(%rbp)
movq -0x4e0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4f0(%rbp)
callq 0x11360
movq -0x4e8(%rbp), %rcx
movq -0x4f0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4e0(%rbp)
jne 0x548dc
leaq -0x1f9(%rbp), %rdi
callq 0x11600
leaq -0x1a0(%rbp), %rdi
callq 0x11360
leaq -0x1a1(%rbp), %rdi
callq 0x11600
movl $0x1, -0x200(%rbp)
jmp 0x55373
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54a88
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54a18
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x549c0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x549b4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x180(%rbp), %rdi
callq 0x11360
leaq -0x1c0(%rbp), %rdi
callq 0x25b00
leaq -0x1fb(%rbp), %rdi
callq 0x279c0
leaq -0x1f0(%rbp), %rax
movq %rax, -0x500(%rbp)
addq $0x20, %rax
movq %rax, -0x4f8(%rbp)
movq -0x4f8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x508(%rbp)
callq 0x11360
movq -0x500(%rbp), %rcx
movq -0x508(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4f8(%rbp)
jne 0x549e5
jmp 0x54a18
leaq -0x1f9(%rbp), %rdi
callq 0x11600
testb $0x1, -0x1fa(%rbp)
jne 0x54a2f
jmp 0x54a7c
movq -0x1f8(%rbp), %rax
leaq -0x1f0(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x510(%rbp)
je 0x54a7a
movq -0x510(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x518(%rbp)
callq 0x11360
movq -0x518(%rbp), %rax
leaq -0x1f0(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x510(%rbp)
jne 0x54a49
jmp 0x54a7c
leaq -0x1a0(%rbp), %rdi
callq 0x11360
leaq -0x1a1(%rbp), %rdi
callq 0x11600
jmp 0x55381
movq -0x440(%rbp), %rsi
addq $0x58, %rsi
leaq -0x280(%rbp), %rdi
callq 0x2ee00
jmp 0x54ab2
movq -0x440(%rbp), %rdi
callq 0x38fd0
jmp 0x54ac0
movq -0x440(%rbp), %rax
cmpl $0x7b, 0xd0(%rax)
je 0x54e0b
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x520(%rbp)
callq 0x119d0
movq -0x520(%rbp), %rdx
leaq 0xfc69b(%rip), %rsi     # 0x151190
leaq -0x2c0(%rbp), %rdi
callq 0x24740
jmp 0x54b03
movb $0x1, -0x31a(%rbp)
leaq -0x310(%rbp), %rax
movq %rax, -0x530(%rbp)
movq %rax, -0x318(%rbp)
leaq -0x319(%rbp), %rdi
movq %rdi, -0x528(%rbp)
callq 0x119d0
movq -0x530(%rbp), %rdi
movq -0x528(%rbp), %rdx
leaq 0xfc7fa(%rip), %rsi     # 0x151341
callq 0x24740
jmp 0x54b4e
movb $0x0, -0x31a(%rbp)
leaq -0x310(%rbp), %rax
movq %rax, -0x2f0(%rbp)
movq $0x1, -0x2e8(%rbp)
leaq -0x31b(%rbp), %rdi
movq %rdi, -0x538(%rbp)
callq 0x26e30
movq -0x538(%rbp), %rcx
movq -0x2f0(%rbp), %rsi
movq -0x2e8(%rbp), %rdx
leaq -0x2e0(%rbp), %rdi
callq 0x2d6a0
jmp 0x54ba4
leaq -0x2a0(%rbp), %rdi
leaq -0x2c0(%rbp), %rsi
leaq -0x2e0(%rbp), %rdx
callq 0x9e250
jmp 0x54bc0
movq -0x440(%rbp), %rsi
movq -0x450(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x2a0(%rbp), %rdx
callq 0x3f820
jmp 0x54be3
leaq -0x2a0(%rbp), %rdi
callq 0x11360
leaq -0x2e0(%rbp), %rdi
callq 0x25b00
leaq -0x31b(%rbp), %rdi
callq 0x279c0
leaq -0x310(%rbp), %rax
movq %rax, -0x548(%rbp)
addq $0x20, %rax
movq %rax, -0x540(%rbp)
movq -0x540(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x550(%rbp)
callq 0x11360
movq -0x548(%rbp), %rcx
movq -0x550(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x540(%rbp)
jne 0x54c20
leaq -0x319(%rbp), %rdi
callq 0x11600
leaq -0x2c0(%rbp), %rdi
callq 0x11360
leaq -0x2c1(%rbp), %rdi
callq 0x11600
movl $0x1, -0x200(%rbp)
jmp 0x55357
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x55381
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x55365
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54dfa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54d8a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54d32
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54d26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x11360
leaq -0x2e0(%rbp), %rdi
callq 0x25b00
leaq -0x31b(%rbp), %rdi
callq 0x279c0
leaq -0x310(%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 0x54d57
jmp 0x54d8a
leaq -0x319(%rbp), %rdi
callq 0x11600
testb $0x1, -0x31a(%rbp)
jne 0x54da1
jmp 0x54dee
movq -0x318(%rbp), %rax
leaq -0x310(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x570(%rbp)
je 0x54dec
movq -0x570(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x578(%rbp)
callq 0x11360
movq -0x578(%rbp), %rax
leaq -0x310(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x570(%rbp)
jne 0x54dbb
jmp 0x54dee
leaq -0x2c0(%rbp), %rdi
callq 0x11360
leaq -0x2c1(%rbp), %rdi
callq 0x11600
jmp 0x55365
movq -0x440(%rbp), %rdi
callq 0x38fd0
jmp 0x54e19
leaq -0x338(%rbp), %rdi
callq 0x57390
movq -0x440(%rbp), %rax
cmpl $0x0, 0xd0(%rax)
je 0x54fb3
movq -0x440(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
jne 0x54e4e
jmp 0x54fb3
movq -0x440(%rbp), %rsi
movq -0x18(%rbp), %rdx
leaq -0x348(%rbp), %rdi
callq 0x39980
jmp 0x54e67
leaq -0x348(%rbp), %rdi
callq 0x57630
testb $0x1, %al
jne 0x54e79
jmp 0x54ec1
leaq -0x338(%rbp), %rdi
leaq -0x348(%rbp), %rsi
callq 0x57650
jmp 0x54e8e
jmp 0x54f77
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x55349
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54fa2
leaq -0x369(%rbp), %rdi
movq %rdi, -0x580(%rbp)
callq 0x119d0
movq -0x580(%rbp), %rdx
leaq 0xfc344(%rip), %rsi     # 0x151226
leaq -0x368(%rbp), %rdi
callq 0x24740
jmp 0x54ef0
movq -0x440(%rbp), %rsi
movq -0x450(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x368(%rbp), %rdx
callq 0x3f820
jmp 0x54f13
leaq -0x368(%rbp), %rdi
callq 0x11360
leaq -0x369(%rbp), %rdi
callq 0x11600
movl $0x1, -0x200(%rbp)
jmp 0x54f81
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x54f69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x368(%rbp), %rdi
callq 0x11360
leaq -0x369(%rbp), %rdi
callq 0x11600
jmp 0x54fa2
movl $0x0, -0x200(%rbp)
leaq -0x348(%rbp), %rdi
callq 0x24b20
movl -0x200(%rbp), %eax
testl %eax, %eax
jne 0x5533b
jmp 0x54f9d
jmp 0x54e25
leaq -0x348(%rbp), %rdi
callq 0x24b20
jmp 0x55349
movq -0x440(%rbp), %rax
cmpl $0x7d, 0xd0(%rax)
je 0x552cd
leaq -0x3b1(%rbp), %rdi
movq %rdi, -0x588(%rbp)
callq 0x119d0
movq -0x588(%rbp), %rdx
leaq 0xfc1a8(%rip), %rsi     # 0x151190
leaq -0x3b0(%rbp), %rdi
callq 0x24740
jmp 0x54ff6
movb $0x1, -0x40a(%rbp)
leaq -0x400(%rbp), %rax
movq %rax, -0x598(%rbp)
movq %rax, -0x408(%rbp)
leaq -0x409(%rbp), %rdi
movq %rdi, -0x590(%rbp)
callq 0x119d0
movq -0x598(%rbp), %rdi
movq -0x590(%rbp), %rdx
leaq 0x1002cf(%rip), %rsi    # 0x155309
callq 0x24740
jmp 0x55041
movb $0x0, -0x40a(%rbp)
leaq -0x400(%rbp), %rax
movq %rax, -0x3e0(%rbp)
movq $0x1, -0x3d8(%rbp)
leaq -0x40b(%rbp), %rdi
movq %rdi, -0x5a0(%rbp)
callq 0x26e30
movq -0x5a0(%rbp), %rcx
movq -0x3e0(%rbp), %rsi
movq -0x3d8(%rbp), %rdx
leaq -0x3d0(%rbp), %rdi
callq 0x2d6a0
jmp 0x55097
leaq -0x390(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
leaq -0x3d0(%rbp), %rdx
callq 0x9e250
jmp 0x550b3
movq -0x440(%rbp), %rsi
movq -0x450(%rbp), %rdi
movq %rsi, %rcx
addq $0x58, %rcx
leaq -0x390(%rbp), %rdx
callq 0x3f820
jmp 0x550d6
leaq -0x390(%rbp), %rdi
callq 0x11360
leaq -0x3d0(%rbp), %rdi
callq 0x25b00
leaq -0x40b(%rbp), %rdi
callq 0x279c0
leaq -0x400(%rbp), %rax
movq %rax, -0x5b0(%rbp)
addq $0x20, %rax
movq %rax, -0x5a8(%rbp)
movq -0x5a8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x5b8(%rbp)
callq 0x11360
movq -0x5b0(%rbp), %rcx
movq -0x5b8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5a8(%rbp)
jne 0x55113
leaq -0x409(%rbp), %rdi
callq 0x11600
leaq -0x3b0(%rbp), %rdi
callq 0x11360
leaq -0x3b1(%rbp), %rdi
callq 0x11600
movl $0x1, -0x200(%rbp)
jmp 0x5533b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x552bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x5524f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x551f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
jmp 0x551eb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa0(%rbp)
movl %eax, -0xa4(%rbp)
leaq -0x390(%rbp), %rdi
callq 0x11360
leaq -0x3d0(%rbp), %rdi
callq 0x25b00
leaq -0x40b(%rbp), %rdi
callq 0x279c0
leaq -0x400(%rbp), %rax
movq %rax, -0x5c8(%rbp)
addq $0x20, %rax
movq %rax, -0x5c0(%rbp)
movq -0x5c0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x5d0(%rbp)
callq 0x11360
movq -0x5c8(%rbp), %rcx
movq -0x5d0(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x5c0(%rbp)
jne 0x5521c
jmp 0x5524f
leaq -0x409(%rbp), %rdi
callq 0x11600
testb $0x1, -0x40a(%rbp)
jne 0x55266
jmp 0x552b3
movq -0x408(%rbp), %rax
leaq -0x400(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x5d8(%rbp)
je 0x552b1
movq -0x5d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x5e0(%rbp)
callq 0x11360
movq -0x5e0(%rbp), %rax
leaq -0x400(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x5d8(%rbp)
jne 0x55280
jmp 0x552b3
leaq -0x3b0(%rbp), %rdi
callq 0x11360
leaq -0x3b1(%rbp), %rdi
callq 0x11600
jmp 0x55349
movq -0x440(%rbp), %rdi
callq 0x38fd0
jmp 0x552db
movq -0x18(%rbp), %rdi
callq 0x58270
movq -0x18(%rbp), %rsi
leaq -0x420(%rbp), %rdi
leaq -0xb0(%rbp), %rdx
leaq -0x160(%rbp), %rcx
leaq -0x338(%rbp), %r8
leaq -0x280(%rbp), %r9
callq 0x59cc0
jmp 0x55312
movq -0x450(%rbp), %rdi
leaq -0x420(%rbp), %rsi
callq 0x59d60
leaq -0x420(%rbp), %rdi
callq 0x59d90
movl $0x1, -0x200(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x574c0
jmp 0x55357
leaq -0x338(%rbp), %rdi
callq 0x574c0
jmp 0x55365
leaq -0x280(%rbp), %rdi
callq 0x2a480
jmp 0x55373
leaq -0x280(%rbp), %rdi
callq 0x2a480
jmp 0x55381
leaq -0x160(%rbp), %rdi
callq 0x24b20
jmp 0x5538f
leaq -0x160(%rbp), %rdi
callq 0x24b20
jmp 0x5539f
movq -0x448(%rbp), %rax
addq $0x5e0, %rsp            # imm = 0x5E0
popq %rbp
retq
movq -0xa0(%rbp), %rdi
callq 0x119c0
nopl (%rax,%rax)