// File: yanlinlin82[P]icpp/icpp.cpp
// Function: parse_array_element(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, bool, bool, int)
string parse_array_element(string name, string symbol_type_name,
		int offset, bool is_global, bool generate_code, int depth)
{
	assert(symbol_type_name.substr(symbol_type_name.size() - 1) == "]");
	auto it = symbol_dim.find(name);
	if (it == symbol_dim.end()) {
		err("symbol '%s' (type = '%s') is not an array!\n",
				name.c_str(), symbol_type_name.c_str());
	}
	const auto& dim = it->second.second;
	if (is_global) {
		if (generate_code) add_assembly_code(LEA, offset, name + "\t" + symbol_type_name);
	} else {
		if (generate_code) add_assembly_code(LLEA, offset, name + "\t" + symbol_type_name);
	}
	if (generate_code) add_assembly_code(PUSH);
	next();
	for (size_t i = 0; ; ++i) {
		if (i > 0) {
			if (generate_code) add_assembly_code(PUSH);
			if (generate_code) add_assembly_code(MOV, dim[i]);
			if (generate_code) add_assembly_code(MUL);
		}
		parse_expression(";", depth, generate_code);
		if (i > 0) {
			if (generate_code) add_assembly_code(ADD);
		}
		expect_token("]", "[");
		next();
		if (token != "[") {
			int factor = 1;
			for (++i; i + 1 < dim.size(); ++i) {
				factor *= dim[i];
			}
			if (factor > 1) {
				if (generate_code) add_assembly_code(PUSH);
				if (generate_code) add_assembly_code(MOV, factor);
				if (generate_code) add_assembly_code(MUL);
			}
			break;
		}
		next();
	}
	if (generate_code) add_assembly_code(ADD);
	if (generate_code) add_assembly_code(PUSH);
	if (generate_code) add_assembly_code(SGET);
	if (!symbol_type_name.empty()) {
		if (symbol_type_name[symbol_type_name.size() - 1] == '*') {
			symbol_type_name = symbol_type_name.substr(0, symbol_type_name.size() - 1);
			while (!symbol_type_name.empty() && symbol_type_name[symbol_type_name.size() - 1] == ' ') {
				symbol_type_name = symbol_type_name.substr(0, symbol_type_name.size() - 1);
			}
		}
	}
	return symbol_type_name;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x470, %rsp            # imm = 0x470
movl %r8d, -0x3b8(%rbp)
movl %ecx, %eax
movl -0x3b8(%rbp), %ecx
movl %eax, -0x3b4(%rbp)
movq %rdx, %rax
movl -0x3b4(%rbp), %edx
movq %rax, -0x398(%rbp)
movq %rsi, -0x3b0(%rbp)
movq %rdi, %r8
movq -0x398(%rbp), %rdi
movq %r8, -0x3a8(%rbp)
movb %r9b, %al
movq %r8, %r9
movq %r9, -0x3a0(%rbp)
movl 0x10(%rbp), %r9d
movq %r8, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
andb $0x1, %cl
movb %cl, -0x1d(%rbp)
andb $0x1, %al
movb %al, -0x1e(%rbp)
callq 0x31c0
movq -0x398(%rbp), %rsi
movq %rax, %rdx
decq %rdx
leaq -0x40(%rbp), %rdi
movq %rdi, -0x390(%rbp)
movq $-0x1, %rcx
callq 0x3280
movq -0x390(%rbp), %rdi
leaq 0x28664(%rip), %rsi     # 0x3714e
callq 0x1a9c0
movb %al, -0x381(%rbp)
jmp 0xeaf7
movb -0x381(%rbp), %al
testb $0x1, %al
jne 0xeb03
jmp 0xeb05
jmp 0xeb3e
leaq 0x28c78(%rip), %rdi     # 0x37784
leaq 0x28864(%rip), %rsi     # 0x37377
movl $0x302, %edx            # imm = 0x302
leaq 0x28ca1(%rip), %rcx     # 0x377c0
callq 0x31a0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x34d8
jmp 0xf849
leaq -0x40(%rbp), %rdi
callq 0x34d8
movq -0x3b0(%rbp), %rsi
leaq 0x41b73(%rip), %rdi     # 0x506c8
callq 0x1b7b0
movq %rax, -0x58(%rbp)
leaq 0x41b63(%rip), %rdi     # 0x506c8
callq 0x1b810
movq %rax, -0x60(%rbp)
leaq -0x58(%rbp), %rdi
leaq -0x60(%rbp), %rsi
callq 0x1b7e0
testb $0x1, %al
jne 0xeb81
jmp 0xebb8
movq -0x3b0(%rbp), %rdi
callq 0x3110
movq -0x398(%rbp), %rdi
movq %rax, -0x3c0(%rbp)
callq 0x3110
movq -0x3c0(%rbp), %rsi
movq %rax, %rdx
leaq 0x28c50(%rip), %rdi     # 0x37801
movb $0x0, %al
callq 0x1a780
leaq -0x58(%rbp), %rdi
callq 0x1b840
addq $0x20, %rax
addq $0x8, %rax
movq %rax, -0x68(%rbp)
testb $0x1, -0x1d(%rbp)
je 0xec96
testb $0x1, -0x1e(%rbp)
je 0xec91
movq -0x3b0(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x3cc(%rbp)
leaq 0x297cb(%rip), %rdx     # 0x383c3
leaq -0xa8(%rbp), %rdi
movq %rdi, -0x3c8(%rbp)
callq 0x1a540
movq -0x3c8(%rbp), %rsi
movq -0x398(%rbp), %rdx
leaq -0x88(%rbp), %rdi
callq 0x1a4f0
jmp 0xec27
movl -0x3cc(%rbp), %esi
movl $0x5, %edi
leaq -0x88(%rbp), %rdx
callq 0x56e0
jmp 0xec40
leaq -0x88(%rbp), %rdi
callq 0x34d8
leaq -0xa8(%rbp), %rdi
callq 0x34d8
jmp 0xec91
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xec80
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x88(%rbp), %rdi
callq 0x34d8
leaq -0xa8(%rbp), %rdi
callq 0x34d8
jmp 0xf849
jmp 0xed52
testb $0x1, -0x1e(%rbp)
je 0xed50
movq -0x3b0(%rbp), %rsi
movl -0x1c(%rbp), %eax
movl %eax, -0x3dc(%rbp)
leaq 0x2970c(%rip), %rdx     # 0x383c3
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x3d8(%rbp)
callq 0x1a540
movq -0x3d8(%rbp), %rsi
movq -0x398(%rbp), %rdx
leaq -0xc8(%rbp), %rdi
callq 0x1a4f0
jmp 0xece6
movl -0x3dc(%rbp), %esi
movl $0x8, %edi
leaq -0xc8(%rbp), %rdx
callq 0x56e0
jmp 0xecff
leaq -0xc8(%rbp), %rdi
callq 0x34d8
leaq -0xe8(%rbp), %rdi
callq 0x34d8
jmp 0xed50
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xed3f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xc8(%rbp), %rdi
callq 0x34d8
leaq -0xe8(%rbp), %rdi
callq 0x34d8
jmp 0xf849
jmp 0xed52
testb $0x1, -0x1e(%rbp)
je 0xedf1
leaq -0x109(%rbp), %rdi
movq %rdi, -0x3e8(%rbp)
callq 0x3470
movq -0x3e8(%rbp), %rdx
leaq 0x29647(%rip), %rsi     # 0x383c4
leaq -0x108(%rbp), %rdi
callq 0x199b0
jmp 0xed8b
movl $0x1, %edi
xorl %esi, %esi
leaq -0x108(%rbp), %rdx
callq 0x56e0
jmp 0xeda0
leaq -0x108(%rbp), %rdi
callq 0x34d8
leaq -0x109(%rbp), %rdi
callq 0x32b0
jmp 0xedf1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xede0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x34d8
leaq -0x109(%rbp), %rdi
callq 0x32b0
jmp 0xf849
callq 0x6030
movq $0x0, -0x118(%rbp)
cmpq $0x0, -0x118(%rbp)
jbe 0xf00a
testb $0x1, -0x1e(%rbp)
je 0xeeae
leaq -0x139(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x3470
movq -0x3f0(%rbp), %rdx
leaq 0x2958a(%rip), %rsi     # 0x383c4
leaq -0x138(%rbp), %rdi
callq 0x199b0
jmp 0xee48
movl $0x1, %edi
xorl %esi, %esi
leaq -0x138(%rbp), %rdx
callq 0x56e0
jmp 0xee5d
leaq -0x138(%rbp), %rdi
callq 0x34d8
leaq -0x139(%rbp), %rdi
callq 0x32b0
jmp 0xeeae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xee9d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x34d8
leaq -0x139(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xef69
movq -0x68(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0x1a110
movl (%rax), %eax
movl %eax, -0x3fc(%rbp)
leaq -0x161(%rbp), %rdi
movq %rdi, -0x3f8(%rbp)
callq 0x3470
movq -0x3f8(%rbp), %rdx
leaq 0x294d3(%rip), %rsi     # 0x383c4
leaq -0x160(%rbp), %rdi
callq 0x199b0
jmp 0xeeff
movl -0x3fc(%rbp), %esi
movl $0x4, %edi
leaq -0x160(%rbp), %rdx
callq 0x56e0
jmp 0xef18
leaq -0x160(%rbp), %rdi
callq 0x34d8
leaq -0x161(%rbp), %rdi
callq 0x32b0
jmp 0xef69
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xef58
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x160(%rbp), %rdi
callq 0x34d8
leaq -0x161(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xf008
leaq -0x189(%rbp), %rdi
movq %rdi, -0x408(%rbp)
callq 0x3470
movq -0x408(%rbp), %rdx
leaq 0x29430(%rip), %rsi     # 0x383c4
leaq -0x188(%rbp), %rdi
callq 0x199b0
jmp 0xefa2
movl $0xf, %edi
xorl %esi, %esi
leaq -0x188(%rbp), %rdx
callq 0x56e0
jmp 0xefb7
leaq -0x188(%rbp), %rdi
callq 0x34d8
leaq -0x189(%rbp), %rdi
callq 0x32b0
jmp 0xf008
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xeff7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x188(%rbp), %rdi
callq 0x34d8
leaq -0x189(%rbp), %rdi
callq 0x32b0
jmp 0xf849
jmp 0xf00a
leaq -0x1d1(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x3470
movq -0x410(%rbp), %rdx
leaq 0x28127(%rip), %rsi     # 0x37152
leaq -0x1d0(%rbp), %rdi
callq 0x199b0
jmp 0xf039
movl 0x10(%rbp), %edx
movzbl -0x1e(%rbp), %ecx
andl $0x1, %ecx
leaq -0x1b0(%rbp), %rdi
leaq -0x1d0(%rbp), %rsi
callq 0xa530
jmp 0xf058
leaq -0x1b0(%rbp), %rdi
callq 0x34d8
leaq -0x1d0(%rbp), %rdi
callq 0x34d8
leaq -0x1d1(%rbp), %rdi
callq 0x32b0
cmpq $0x0, -0x118(%rbp)
jbe 0xf162
testb $0x1, -0x1e(%rbp)
je 0xf160
leaq -0x1f9(%rbp), %rdi
movq %rdi, -0x418(%rbp)
callq 0x3470
movq -0x418(%rbp), %rdx
leaq 0x2930f(%rip), %rsi     # 0x383c4
leaq -0x1f8(%rbp), %rdi
callq 0x199b0
jmp 0xf0c3
movl $0xd, %edi
xorl %esi, %esi
leaq -0x1f8(%rbp), %rdx
callq 0x56e0
jmp 0xf0d8
leaq -0x1f8(%rbp), %rdi
callq 0x34d8
leaq -0x1f9(%rbp), %rdi
callq 0x32b0
jmp 0xf160
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf118
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1d0(%rbp), %rdi
callq 0x34d8
leaq -0x1d1(%rbp), %rdi
callq 0x32b0
jmp 0xf849
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf14f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x1f8(%rbp), %rdi
callq 0x34d8
leaq -0x1f9(%rbp), %rdi
callq 0x32b0
jmp 0xf849
jmp 0xf162
leaq -0x221(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x3470
movq -0x420(%rbp), %rdx
leaq 0x27fcb(%rip), %rsi     # 0x3714e
leaq -0x220(%rbp), %rdi
callq 0x199b0
jmp 0xf191
leaq -0x249(%rbp), %rdi
movq %rdi, -0x428(%rbp)
callq 0x3470
movq -0x428(%rbp), %rdx
leaq 0x288f0(%rip), %rsi     # 0x37aa2
leaq -0x248(%rbp), %rdi
callq 0x199b0
jmp 0xf1c0
leaq -0x220(%rbp), %rdi
leaq -0x248(%rbp), %rsi
callq 0x6790
jmp 0xf1d5
leaq -0x248(%rbp), %rdi
callq 0x34d8
leaq -0x249(%rbp), %rdi
callq 0x32b0
leaq -0x220(%rbp), %rdi
callq 0x34d8
leaq -0x221(%rbp), %rdi
callq 0x32b0
callq 0x6030
leaq 0x412d7(%rip), %rdi     # 0x504e8
leaq 0x2888a(%rip), %rsi     # 0x37aa2
callq 0x1b450
testb $0x1, %al
jne 0xf226
jmp 0xf4fe
movl $0x1, -0x250(%rbp)
movq -0x118(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x118(%rbp)
movq -0x118(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x430(%rbp)
movq -0x68(%rbp), %rdi
callq 0x19990
movq %rax, %rcx
movq -0x430(%rbp), %rax
cmpq %rcx, %rax
jae 0xf300
movq -0x68(%rbp), %rdi
movq -0x118(%rbp), %rsi
callq 0x1a110
movl (%rax), %eax
imull -0x250(%rbp), %eax
movl %eax, -0x250(%rbp)
movq -0x118(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x118(%rbp)
jmp 0xf242
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf2ef
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf2d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x248(%rbp), %rdi
callq 0x34d8
leaq -0x249(%rbp), %rdi
callq 0x32b0
leaq -0x220(%rbp), %rdi
callq 0x34d8
leaq -0x221(%rbp), %rdi
callq 0x32b0
jmp 0xf849
cmpl $0x1, -0x250(%rbp)
jle 0xf4fc
testb $0x1, -0x1e(%rbp)
je 0xf3ac
leaq -0x271(%rbp), %rdi
movq %rdi, -0x438(%rbp)
callq 0x3470
movq -0x438(%rbp), %rdx
leaq 0x2908c(%rip), %rsi     # 0x383c4
leaq -0x270(%rbp), %rdi
callq 0x199b0
jmp 0xf346
movl $0x1, %edi
xorl %esi, %esi
leaq -0x270(%rbp), %rdx
callq 0x56e0
jmp 0xf35b
leaq -0x270(%rbp), %rdi
callq 0x34d8
leaq -0x271(%rbp), %rdi
callq 0x32b0
jmp 0xf3ac
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf39b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x270(%rbp), %rdi
callq 0x34d8
leaq -0x271(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xf45b
movl -0x250(%rbp), %eax
movl %eax, -0x444(%rbp)
leaq -0x299(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x3470
movq -0x440(%rbp), %rdx
leaq 0x28fe1(%rip), %rsi     # 0x383c4
leaq -0x298(%rbp), %rdi
callq 0x199b0
jmp 0xf3f1
movl -0x444(%rbp), %esi
movl $0x4, %edi
leaq -0x298(%rbp), %rdx
callq 0x56e0
jmp 0xf40a
leaq -0x298(%rbp), %rdi
callq 0x34d8
leaq -0x299(%rbp), %rdi
callq 0x32b0
jmp 0xf45b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf44a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x34d8
leaq -0x299(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xf4fa
leaq -0x2c1(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x3470
movq -0x450(%rbp), %rdx
leaq 0x28f3e(%rip), %rsi     # 0x383c4
leaq -0x2c0(%rbp), %rdi
callq 0x199b0
jmp 0xf494
movl $0xf, %edi
xorl %esi, %esi
leaq -0x2c0(%rbp), %rdx
callq 0x56e0
jmp 0xf4a9
leaq -0x2c0(%rbp), %rdi
callq 0x34d8
leaq -0x2c1(%rbp), %rdi
callq 0x32b0
jmp 0xf4fa
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf4e9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2c0(%rbp), %rdi
callq 0x34d8
leaq -0x2c1(%rbp), %rdi
callq 0x32b0
jmp 0xf849
jmp 0xf4fc
jmp 0xf51a
callq 0x6030
movq -0x118(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x118(%rbp)
jmp 0xee01
testb $0x1, -0x1e(%rbp)
je 0xf5b9
leaq -0x2e9(%rbp), %rdi
movq %rdi, -0x458(%rbp)
callq 0x3470
movq -0x458(%rbp), %rdx
leaq 0x28e7f(%rip), %rsi     # 0x383c4
leaq -0x2e8(%rbp), %rdi
callq 0x199b0
jmp 0xf553
movl $0xd, %edi
xorl %esi, %esi
leaq -0x2e8(%rbp), %rdx
callq 0x56e0
jmp 0xf568
leaq -0x2e8(%rbp), %rdi
callq 0x34d8
leaq -0x2e9(%rbp), %rdi
callq 0x32b0
jmp 0xf5b9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf5a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2e8(%rbp), %rdi
callq 0x34d8
leaq -0x2e9(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xf658
leaq -0x311(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x3470
movq -0x460(%rbp), %rdx
leaq 0x28de0(%rip), %rsi     # 0x383c4
leaq -0x310(%rbp), %rdi
callq 0x199b0
jmp 0xf5f2
movl $0x1, %edi
xorl %esi, %esi
leaq -0x310(%rbp), %rdx
callq 0x56e0
jmp 0xf607
leaq -0x310(%rbp), %rdi
callq 0x34d8
leaq -0x311(%rbp), %rdi
callq 0x32b0
jmp 0xf658
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf647
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x310(%rbp), %rdi
callq 0x34d8
leaq -0x311(%rbp), %rdi
callq 0x32b0
jmp 0xf849
testb $0x1, -0x1e(%rbp)
je 0xf6f7
leaq -0x339(%rbp), %rdi
movq %rdi, -0x468(%rbp)
callq 0x3470
movq -0x468(%rbp), %rdx
leaq 0x28d41(%rip), %rsi     # 0x383c4
leaq -0x338(%rbp), %rdi
callq 0x199b0
jmp 0xf691
movl $0xb, %edi
xorl %esi, %esi
leaq -0x338(%rbp), %rdx
callq 0x56e0
jmp 0xf6a6
leaq -0x338(%rbp), %rdi
callq 0x34d8
leaq -0x339(%rbp), %rdi
callq 0x32b0
jmp 0xf6f7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xf6e6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x338(%rbp), %rdi
callq 0x34d8
leaq -0x339(%rbp), %rdi
callq 0x32b0
jmp 0xf849
movq -0x398(%rbp), %rdi
callq 0x3430
testb $0x1, %al
jne 0xf826
movq -0x398(%rbp), %rdi
callq 0x31c0
movq -0x398(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x34c0
movsbl (%rax), %eax
cmpl $0x2a, %eax
jne 0xf824
movq -0x398(%rbp), %rdi
callq 0x31c0
movq -0x398(%rbp), %rsi
movq %rax, %rcx
subq $0x1, %rcx
leaq -0x360(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3280
movq -0x398(%rbp), %rdi
leaq -0x360(%rbp), %rsi
callq 0x3300
leaq -0x360(%rbp), %rdi
callq 0x34d8
movq -0x398(%rbp), %rdi
callq 0x3430
movb %al, %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x469(%rbp)
jne 0xf7c8
movq -0x398(%rbp), %rdi
callq 0x31c0
movq -0x398(%rbp), %rdi
movq %rax, %rsi
subq $0x1, %rsi
callq 0x34c0
movsbl (%rax), %eax
cmpl $0x20, %eax
sete %al
movb %al, -0x469(%rbp)
movb -0x469(%rbp), %al
testb $0x1, %al
jne 0xf7d4
jmp 0xf822
movq -0x398(%rbp), %rdi
callq 0x31c0
movq -0x398(%rbp), %rsi
movq %rax, %rcx
subq $0x1, %rcx
leaq -0x380(%rbp), %rdi
xorl %eax, %eax
movl %eax, %edx
callq 0x3280
movq -0x398(%rbp), %rdi
leaq -0x380(%rbp), %rsi
callq 0x3300
leaq -0x380(%rbp), %rdi
callq 0x34d8
jmp 0xf77f
jmp 0xf824
jmp 0xf826
movq -0x398(%rbp), %rsi
movq -0x3a8(%rbp), %rdi
callq 0x3180
movq -0x3a0(%rbp), %rax
addq $0x470, %rsp            # imm = 0x470
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x3460
nopw %cs:(%rax,%rax)