// File: /workspace/github_cpp_makefile_star2_O2/yanlinlin82[P]icpp/icpp.cpp
// Function: parse_statements(int)
void parse_statements(int depth = 0)
{
	log<3>("[DEBUG] >(%d) %s: (token = '%s')\n", depth, __FUNCTION__, token.c_str());
	if (token == "{") {
		log<3>("[DEBUG] =>(%d) statement '{'\n", depth);
		next(); while (!token.empty() && token != "}") parse_statements(depth + 1);
		expect_token("}", "{");
		next();
	} else if (token == "if") {
		log<3>("[DEBUG] =>(%d) statement 'if'\n", depth);
		next(); expect_token("(", "if");
		next(); parse_expression(); expect_token(")", "if");
		size_t code_offset_1 = add_assembly_code(JZ, code_sec.size() + 2);
		next(); parse_statements(depth + 1);
		if (token == "else") {
			size_t code_offset_2 = add_assembly_code(JMP, code_sec.size() + 2);
			update_relative_address_here(code_offset_1);
			next();
			parse_statements(depth + 1);
			update_relative_address_here(code_offset_2);
		} else {
			update_relative_address_here(code_offset_1);
		}
	} else if (token == "for") {
		log<3>("[DEBUG] =>(%d) statement 'for'\n", depth);
		next(); expect_token("(", "for");
		next(); parse_init_statement(); expect_token(";", "for");
		size_t code_offset_1 = code_sec.size();
		next(); parse_expression(); expect_token(";", "for");
		size_t code_offset_2 = add_assembly_code(JZ, code_sec.size() + 2);
		size_t code_offset_3 = add_assembly_code(JMP, code_sec.size() + 2);
		size_t code_offset_4 = code_sec.size();
		next(); parse_expression(); expect_token(")", "for");
		add_assembly_code(JMP, code_offset_1);
		update_relative_address_here(code_offset_3);
		expect_token(")", "for");
		next(); parse_statements(depth + 1);
		add_assembly_code(JMP, code_offset_4);
		update_relative_address_here(code_offset_2);
	} else if (token == "while") {
		log<3>("[DEBUG] =>(%d) statement 'while'\n", depth);
		next(); expect_token("(", "while");
		size_t code_offset_1 = code_sec.size();
		next(); parse_expression(); expect_token(")", "while");
		size_t code_offset_2 = add_assembly_code(JZ, code_sec.size() + 2);
		next(); parse_statements(depth + 1);
		add_assembly_code(JMP, code_offset_1);
		update_relative_address_here(code_offset_2);
	} else if (token == "do") {
		log<3>("[DEBUG] =>(%d) statement 'do'\n", depth);
		next(); expect_token("{", "do");
		size_t code_offset_1 = code_sec.size();
		parse_statements(depth + 1);
		expect_token("while", "do");
		next(); expect_token("(", "do");
		next(); parse_expression();
		add_assembly_code(JNZ, code_offset_1);
		expect_token(")", "do");
		next(); expect_token(";", "do");
	} else if (token == "return") {
		log<3>("[DEBUG] =>(%d) statement 'return'\n", depth);
		next();
		if (scopes.empty() || scopes.back().first != "function") {
			err("unexpected 'return' statement!\n");
		}
		string name = scopes.back().second;
		if (token != ";") {
			parse_expression();
		}
		expect_token(";", "return");
		add_assembly_code(LEAVE);
		add_assembly_code(RET, get<3>(current_function));
		next();
		returned_functions.insert(get<0>(current_function));
	} else if (token == "typedef") {
		log<3>("[DEBUG] =>(%d) statement 'typedef'\n", depth);
		skip_until(";", "typedef");
		next();
	} else {
		log<3>("[DEBUG] =>(%d) init-statement\n", depth);
		parse_init_statement();
		next();
	}
	log<3>("[DEBUG] >(%d) %s return: (token = '%s')\n", depth, __FUNCTION__, token.c_str());
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x758, %rsp            # imm = 0x758
movl %edi, %ebx
leaq 0x15b29(%rip), %r14     # 0x21290
movq 0x15b22(%rip), %rcx     # 0x21290
leaq 0xb472(%rip), %rdi      # 0x16be7
leaq 0xb48d(%rip), %rdx      # 0x16c09
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
leaq 0xace6(%rip), %rsi      # 0x16472
movq %r14, %rdi
callq 0xf4c8
testb %al, %al
je 0xb7ea
leaq 0xb47b(%rip), %rdi      # 0x16c1a
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
leal 0x1(%rbx), %r14d
leaq 0x15ad8(%rip), %r15     # 0x21290
leaq 0xaa51(%rip), %r12      # 0x16210
cmpq $0x0, 0x15ad1(%rip)     # 0x21298
je 0xba03
movq %r15, %rdi
movq %r12, %rsi
callq 0xf65a
testb %al, %al
je 0xba03
movl %r14d, %edi
callq 0xb74a
jmp 0xb7bf
leaq 0x15a9f(%rip), %rdi     # 0x21290
leaq 0xb440(%rip), %rsi      # 0x16c38
callq 0xf4c8
testb %al, %al
je 0xba66
leaq 0xb42f(%rip), %rdi      # 0x16c3b
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
leaq 0xb1a6(%rip), %rsi      # 0x169c7
leaq -0x678(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xb400(%rip), %rsi      # 0x16c38
leaq -0x658(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x678(%rbp), %rdi
leaq -0x658(%rbp), %rsi
callq 0x540c
leaq -0x658(%rbp), %rdi
callq 0x3368
leaq -0x678(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leaq 0xa993(%rip), %rsi      # 0x16212
leaq -0x638(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq -0x778(%rbp), %rdi
leaq -0x638(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x778(%rbp), %rdi
callq 0x3368
leaq -0x638(%rbp), %rdi
callq 0x3368
leaq 0xb2c2(%rip), %rsi      # 0x16b88
leaq -0x618(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xb35b(%rip), %rsi      # 0x16c38
leaq -0x5f8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x618(%rbp), %rdi
leaq -0x5f8(%rbp), %rsi
callq 0x540c
leaq -0x5f8(%rbp), %rdi
callq 0x3368
leaq -0x618(%rbp), %rdi
callq 0x3368
movq 0x159e9(%rip), %r14     # 0x21308
movq 0x159da(%rip), %r15     # 0x21300
leaq 0xbb57(%rip), %rsi      # 0x17484
leaq -0x5d8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
subq %r15, %r14
shrq $0x2, %r14
addl $0x2, %r14d
pushq $0x28
popq %rdi
leaq -0x5d8(%rbp), %rdx
movl %r14d, %esi
callq 0x4a27
movq %rax, %r14
leaq -0x5d8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leal 0x1(%rbx), %r15d
movl %r15d, %edi
callq 0xb74a
leaq 0x1590f(%rip), %rdi     # 0x21290
leaq 0xb2d2(%rip), %rsi      # 0x16c5a
callq 0xf4c8
testb %al, %al
je 0xc012
movq 0x1596c(%rip), %r12     # 0x21308
movq 0x1595d(%rip), %r13     # 0x21300
leaq 0xbada(%rip), %rsi      # 0x17484
leaq -0x5b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
subq %r13, %r12
shrq $0x2, %r12
addl $0x2, %r12d
pushq $0x27
popq %rdi
leaq -0x5b8(%rbp), %rdx
movl %r12d, %esi
callq 0x4a27
movq %rax, %r12
leaq -0x5b8(%rbp), %rdi
callq 0x3368
movq %r14, %rdi
callq 0x4bee
callq 0x4fdf
movl %r15d, %edi
callq 0xb74a
movq %r12, %rdi
jmp 0xc015
leaq 0xa806(%rip), %rsi      # 0x16210
leaq -0x6b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaa51(%rip), %rsi      # 0x16472
leaq -0x698(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x6b8(%rbp), %rdi
leaq -0x698(%rbp), %rsi
callq 0x540c
leaq -0x698(%rbp), %rdi
callq 0x3368
leaq -0x6b8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
jmp 0xc01a
leaq 0x15823(%rip), %rdi     # 0x21290
leaq 0xb1eb(%rip), %rsi      # 0x16c5f
callq 0xf4c8
testb %al, %al
je 0xbe3a
leaq 0xb1db(%rip), %rdi      # 0x16c63
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
leaq 0xaf2a(%rip), %rsi      # 0x169c7
leaq -0x598(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xb1ab(%rip), %rsi      # 0x16c5f
leaq -0x578(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x598(%rbp), %rdi
leaq -0x578(%rbp), %rsi
callq 0x540c
leaq -0x578(%rbp), %rdi
callq 0x3368
leaq -0x598(%rbp), %rdi
callq 0x3368
callq 0x4fdf
callq 0xb5f5
leaq 0xa712(%rip), %rsi      # 0x16212
leaq -0x558(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xb148(%rip), %rsi      # 0x16c5f
leaq -0x538(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x558(%rbp), %rdi
leaq -0x538(%rbp), %rsi
callq 0x540c
leaq -0x538(%rbp), %rdi
callq 0x3368
leaq -0x558(%rbp), %rdi
callq 0x3368
movq 0x157af(%rip), %r14     # 0x21308
subq 0x157a0(%rip), %r14     # 0x21300
callq 0x4fdf
leaq 0xa6a6(%rip), %rsi      # 0x16212
leaq -0x518(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq -0x758(%rbp), %rdi
leaq -0x518(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x758(%rbp), %rdi
callq 0x3368
leaq -0x518(%rbp), %rdi
callq 0x3368
leaq 0xa65f(%rip), %rsi      # 0x16212
leaq -0x4f8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xb095(%rip), %rsi      # 0x16c5f
leaq -0x4d8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x4f8(%rbp), %rdi
leaq -0x4d8(%rbp), %rsi
callq 0x540c
leaq -0x4d8(%rbp), %rdi
callq 0x3368
leaq -0x4f8(%rbp), %rdi
callq 0x3368
movq 0x156fc(%rip), %r15     # 0x21308
movq 0x156ed(%rip), %r12     # 0x21300
leaq 0xb86a(%rip), %rsi      # 0x17484
leaq -0x4b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
subq %r12, %r15
shrq $0x2, %r15
addl $0x2, %r15d
pushq $0x28
popq %rdi
leaq -0x4b8(%rbp), %rdx
movl %r15d, %esi
callq 0x4a27
movq %rax, %r15
leaq -0x4b8(%rbp), %rdi
callq 0x3368
movq 0x156ab(%rip), %r12     # 0x21308
movq 0x1569c(%rip), %r13     # 0x21300
leaq 0xb819(%rip), %rsi      # 0x17484
leaq -0x498(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
subq %r13, %r12
shrq $0x2, %r12
addl $0x2, %r12d
pushq $0x27
popq %rdi
leaq -0x498(%rbp), %rdx
movl %r12d, %esi
callq 0x4a27
movq %rax, %r13
leaq -0x498(%rbp), %rdi
callq 0x3368
movq 0x1565a(%rip), %r12     # 0x21308
subq 0x1564b(%rip), %r12     # 0x21300
callq 0x4fdf
leaq 0xa551(%rip), %rsi      # 0x16212
leaq -0x478(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq -0x738(%rbp), %rdi
leaq -0x478(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x738(%rbp), %rdi
callq 0x3368
leaq -0x478(%rbp), %rdi
callq 0x3368
leaq 0xae80(%rip), %rsi      # 0x16b88
leaq -0x458(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaf40(%rip), %rsi      # 0x16c5f
leaq -0x438(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x458(%rbp), %rdi
leaq -0x438(%rbp), %rsi
callq 0x540c
leaq -0x438(%rbp), %rdi
callq 0x3368
leaq -0x458(%rbp), %rdi
callq 0x3368
leaq 0xb723(%rip), %rsi      # 0x17484
leaq -0x418(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
shrq $0x2, %r14
pushq $0x27
popq %rdi
leaq -0x418(%rbp), %rdx
movl %r14d, %esi
callq 0x4a27
leaq -0x418(%rbp), %rdi
callq 0x3368
movq %r13, %rdi
callq 0x4bee
leaq 0xade6(%rip), %rsi      # 0x16b88
leaq -0x3f8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaea6(%rip), %rsi      # 0x16c5f
leaq -0x3d8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x3f8(%rbp), %rdi
leaq -0x3d8(%rbp), %rsi
callq 0x540c
leaq -0x3d8(%rbp), %rdi
callq 0x3368
leaq -0x3f8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leal 0x1(%rbx), %edi
callq 0xb74a
leaq 0xb67c(%rip), %rsi      # 0x17484
leaq -0x3b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
shrq $0x2, %r12
pushq $0x27
popq %rdi
leaq -0x3b8(%rbp), %rdx
movl %r12d, %esi
callq 0x4a27
leaq -0x3b8(%rbp), %rdi
jmp 0xc008
leaq 0x1544f(%rip), %rdi     # 0x21290
leaq 0xae3b(%rip), %rsi      # 0x16c83
callq 0xf4c8
testb %al, %al
je 0xc04a
leaq 0xae2d(%rip), %rdi      # 0x16c89
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
leaq 0xab56(%rip), %rsi      # 0x169c7
leaq -0x398(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xadfb(%rip), %rsi      # 0x16c83
leaq -0x378(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x398(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0x540c
leaq -0x378(%rbp), %rdi
callq 0x3368
leaq -0x398(%rbp), %rdi
callq 0x3368
movq 0x1543e(%rip), %r14     # 0x21308
subq 0x1542f(%rip), %r14     # 0x21300
callq 0x4fdf
leaq 0xa335(%rip), %rsi      # 0x16212
leaq -0x358(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq -0x718(%rbp), %rdi
leaq -0x358(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x718(%rbp), %rdi
callq 0x3368
leaq -0x358(%rbp), %rdi
callq 0x3368
leaq 0xac64(%rip), %rsi      # 0x16b88
leaq -0x338(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xad48(%rip), %rsi      # 0x16c83
leaq -0x318(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x338(%rbp), %rdi
leaq -0x318(%rbp), %rsi
callq 0x540c
leaq -0x318(%rbp), %rdi
callq 0x3368
leaq -0x338(%rbp), %rdi
callq 0x3368
movq 0x1538b(%rip), %r15     # 0x21308
movq 0x1537c(%rip), %r12     # 0x21300
leaq 0xb4f9(%rip), %rsi      # 0x17484
leaq -0x2f8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
subq %r12, %r15
shrq $0x2, %r15
addl $0x2, %r15d
pushq $0x28
popq %rdi
leaq -0x2f8(%rbp), %rdx
movl %r15d, %esi
callq 0x4a27
movq %rax, %r15
leaq -0x2f8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leal 0x1(%rbx), %edi
callq 0xb74a
leaq 0xb4a9(%rip), %rsi      # 0x17484
leaq -0x2d8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
shrq $0x2, %r14
pushq $0x27
popq %rdi
leaq -0x2d8(%rbp), %rdx
movl %r14d, %esi
callq 0x4a27
leaq -0x2d8(%rbp), %rdi
callq 0x3368
movq %r15, %rdi
jmp 0xc015
movq %r14, %rdi
callq 0x4bee
movq 0x1526f(%rip), %rcx     # 0x21290
leaq 0xad3a(%rip), %rdi      # 0x16d62
leaq 0xabda(%rip), %rdx      # 0x16c09
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
addq $0x758, %rsp            # imm = 0x758
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1523f(%rip), %rdi     # 0x21290
leaq 0xac53(%rip), %rsi      # 0x16cab
callq 0xf4c8
testb %al, %al
je 0xc2dc
leaq 0xac42(%rip), %rdi      # 0x16cae
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
leaq 0xa3f1(%rip), %rsi      # 0x16472
leaq -0x2b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xac13(%rip), %rsi      # 0x16cab
leaq -0x298(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x2b8(%rbp), %rdi
leaq -0x298(%rbp), %rsi
callq 0x540c
leaq -0x298(%rbp), %rdi
callq 0x3368
leaq -0x2b8(%rbp), %rdi
callq 0x3368
movq 0x1522e(%rip), %r14     # 0x21308
subq 0x1521f(%rip), %r14     # 0x21300
leal 0x1(%rbx), %edi
callq 0xb74a
leaq 0xab93(%rip), %rsi      # 0x16c83
leaq -0x278(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaba4(%rip), %rsi      # 0x16cab
leaq -0x258(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x278(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x540c
leaq -0x258(%rbp), %rdi
callq 0x3368
leaq -0x278(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leaq 0xa879(%rip), %rsi      # 0x169c7
leaq -0x238(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xab46(%rip), %rsi      # 0x16cab
leaq -0x218(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x238(%rbp), %rdi
leaq -0x218(%rbp), %rsi
callq 0x540c
leaq -0x218(%rbp), %rdi
callq 0x3368
leaq -0x238(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leaq 0xa066(%rip), %rsi      # 0x16212
leaq -0x1f8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq -0x6f8(%rbp), %rdi
leaq -0x1f8(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x6f8(%rbp), %rdi
callq 0x3368
leaq -0x1f8(%rbp), %rdi
callq 0x3368
leaq 0xb291(%rip), %rsi      # 0x17484
leaq -0x1d8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
shrq $0x2, %r14
pushq $0x29
popq %rdi
leaq -0x1d8(%rbp), %rdx
movl %r14d, %esi
callq 0x4a27
leaq -0x1d8(%rbp), %rdi
callq 0x3368
leaq 0xa95c(%rip), %rsi      # 0x16b88
leaq -0x1b8(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaa68(%rip), %rsi      # 0x16cab
leaq -0x198(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x1b8(%rbp), %rdi
leaq -0x198(%rbp), %rsi
callq 0x540c
leaq -0x198(%rbp), %rdi
callq 0x3368
leaq -0x1b8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leaq 0x9f88(%rip), %rsi      # 0x16212
leaq -0x178(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xaa0a(%rip), %rsi      # 0x16cab
leaq -0x158(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x178(%rbp), %rdi
leaq -0x158(%rbp), %rsi
callq 0x540c
leaq -0x158(%rbp), %rdi
callq 0x3368
leaq -0x178(%rbp), %rdi
jmp 0xc495
leaq 0x14fad(%rip), %rdi     # 0x21290
leaq 0xa9e3(%rip), %rsi      # 0x16ccd
callq 0xf4c8
testb %al, %al
je 0xc49f
leaq 0xa9d6(%rip), %rdi      # 0x16cd4
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0x4fdf
movq 0x14fa5(%rip), %rdi     # 0x212b8
cmpq %rdi, 0x14f96(%rip)     # 0x212b0
je 0xc330
addq $-0x40, %rdi
leaq 0xa405(%rip), %rsi      # 0x1672c
callq 0xf65a
testb %al, %al
je 0xc33e
leaq 0xa9c0(%rip), %rdi      # 0x16cf7
xorl %eax, %eax
callq 0xf410
movq 0x14f73(%rip), %rsi     # 0x212b8
addq $-0x20, %rsi
leaq -0x50(%rbp), %rdi
callq 0x3270
leaq 0x14f37(%rip), %rdi     # 0x21290
leaq 0x9eb2(%rip), %rsi      # 0x16212
callq 0xf65a
testb %al, %al
je 0xc3b0
leaq 0x9ea2(%rip), %rsi      # 0x16212
leaq -0x138(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x6d8(%rbp), %rdi
leaq -0x138(%rbp), %rsi
pushq $0x1
popq %rcx
xorl %edx, %edx
callq 0x7431
leaq -0x6d8(%rbp), %rdi
callq 0x3368
leaq -0x138(%rbp), %rdi
callq 0x3368
leaq 0x9e5b(%rip), %rsi      # 0x16212
leaq -0x118(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq 0xa8ff(%rip), %rsi      # 0x16ccd
leaq -0xf8(%rbp), %rdi
leaq -0x51(%rbp), %rdx
callq 0xf1f8
leaq -0x118(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x540c
leaq -0xf8(%rbp), %rdi
callq 0x3368
leaq -0x118(%rbp), %rdi
callq 0x3368
leaq 0xb074(%rip), %rsi      # 0x17484
leaq -0xd8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
pushq $0x24
popq %rdi
leaq -0xd8(%rbp), %rdx
xorl %esi, %esi
callq 0x4a27
leaq -0xd8(%rbp), %rdi
callq 0x3368
movl 0x1509c(%rip), %r14d    # 0x214e0
leaq 0xb039(%rip), %rsi      # 0x17484
leaq -0xb8(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
pushq $0x26
popq %rdi
leaq -0xb8(%rbp), %rdx
movl %r14d, %esi
callq 0x4a27
leaq -0xb8(%rbp), %rdi
callq 0x3368
callq 0x4fdf
leaq 0x14e43(%rip), %rdi     # 0x212c8
leaq 0x1509c(%rip), %rsi     # 0x21528
callq 0x13290
leaq -0x50(%rbp), %rdi
callq 0x3368
jmp 0xc01a
leaq 0x14dea(%rip), %rdi     # 0x21290
leaq 0xa86a(%rip), %rsi      # 0x16d17
callq 0xf4c8
testb %al, %al
je 0xc516
leaq 0xa862(%rip), %rdi      # 0x16d1f
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
leaq 0x9d45(%rip), %rsi      # 0x16212
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rdx
callq 0xf1f8
leaq 0xa833(%rip), %rsi      # 0x16d17
leaq -0x78(%rbp), %rdi
leaq -0x29(%rbp), %rdx
callq 0xf1f8
leaq -0x98(%rbp), %rdi
leaq -0x78(%rbp), %rsi
callq 0x5450
leaq -0x78(%rbp), %rdi
callq 0x3368
leaq -0x98(%rbp), %rdi
jmp 0xba57
leaq 0xa826(%rip), %rdi      # 0x16d43
movl %ebx, %esi
xorl %eax, %eax
callq 0xf138
callq 0xb5f5
jmp 0xba5c
movq %rax, %rbx
leaq -0x78(%rbp), %rdi
callq 0x3368
jmp 0xc541
movq %rax, %rbx
leaq -0x98(%rbp), %rdi
jmp 0xc8d0
movq %rax, %rbx
leaq -0x138(%rbp), %rdi
jmp 0xc5a0
jmp 0xc8d7
jmp 0xc61b
movq %rax, %rbx
leaq -0xb8(%rbp), %rdi
jmp 0xc5a0
jmp 0xc61b
movq %rax, %rbx
leaq -0xd8(%rbp), %rdi
jmp 0xc5a0
jmp 0xc61b
movq %rax, %rbx
leaq -0xf8(%rbp), %rdi
callq 0x3368
jmp 0xc599
movq %rax, %rbx
leaq -0x118(%rbp), %rdi
callq 0x3368
jmp 0xc61e
jmp 0xc61b
movq %rax, %rbx
leaq -0x158(%rbp), %rdi
callq 0x3368
jmp 0xc5bd
movq %rax, %rbx
leaq -0x178(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x198(%rbp), %rdi
callq 0x3368
jmp 0xc5e2
movq %rax, %rbx
leaq -0x1b8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x1d8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x1f8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x50(%rbp), %rdi
jmp 0xc8d0
movq %rax, %rbx
leaq -0x218(%rbp), %rdi
callq 0x3368
jmp 0xc63b
movq %rax, %rbx
leaq -0x238(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x258(%rbp), %rdi
callq 0x3368
jmp 0xc660
movq %rax, %rbx
leaq -0x278(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x298(%rbp), %rdi
callq 0x3368
jmp 0xc685
movq %rax, %rbx
leaq -0x2b8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x2d8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x2f8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x318(%rbp), %rdi
callq 0x3368
jmp 0xc6d2
movq %rax, %rbx
leaq -0x338(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x358(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x378(%rbp), %rdi
callq 0x3368
jmp 0xc70b
movq %rax, %rbx
leaq -0x398(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x3b8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x3d8(%rbp), %rdi
callq 0x3368
jmp 0xc744
movq %rax, %rbx
leaq -0x3f8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x418(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x438(%rbp), %rdi
callq 0x3368
jmp 0xc77d
movq %rax, %rbx
leaq -0x458(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x478(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x498(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x4b8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x5b8(%rbp), %rdi
jmp 0xc8d0
movq %rax, %rbx
leaq -0x4d8(%rbp), %rdi
callq 0x3368
jmp 0xc7f2
jmp 0xc8d7
movq %rax, %rbx
leaq -0x4f8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x518(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x538(%rbp), %rdi
callq 0x3368
jmp 0xc82b
movq %rax, %rbx
leaq -0x558(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x578(%rbp), %rdi
callq 0x3368
jmp 0xc850
movq %rax, %rbx
leaq -0x598(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x5d8(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x5f8(%rbp), %rdi
callq 0x3368
jmp 0xc87d
movq %rax, %rbx
leaq -0x618(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x638(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x658(%rbp), %rdi
callq 0x3368
jmp 0xc8aa
movq %rax, %rbx
leaq -0x678(%rbp), %rdi
jmp 0xc8d0
jmp 0xc8d7
movq %rax, %rbx
leaq -0x698(%rbp), %rdi
callq 0x3368
jmp 0xc8c9
movq %rax, %rbx
leaq -0x6b8(%rbp), %rdi
callq 0x3368
jmp 0xc8da
movq %rax, %rbx
movq %rbx, %rdi
callq 0x3310