// File: /workspace/github_cpp_makefile_star2_O3/yanlinlin82[P]icpp/icpp.cpp
// Function: parse_expression(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, int, bool)
string parse_expression(string stop_token, int depth, bool generate_code)
{
	log<3>("[DEBUG] >(%d) %s (stop at '%s', token = '%s'):\n",
			depth, __FUNCTION__, stop_token.c_str(), token.c_str());

	if (type == number) {
		int v = eval_number(token);
		if (generate_code) add_assembly_code(MOV, v);
		next();
		return "int";
	} else if (type == text) {
		string v = eval_string(token);
		auto mem = prepare_string(v);
		string name = alloc_name();
		string type_name = "const char*";
		size_t offset = add_const_string(name, mem, type_name);
		if (generate_code) add_assembly_code(MOV, offset, name + "\t" + type_name);
		next();
		return "const char*";
	} else if (token == "sizeof") {
		next(); expect_token("(", "sizeof");
		next(); parse_expression(";", depth + 1, false);
		expect_token(")", "sizeof");
		int size = sizeof(int);
		if (generate_code) add_assembly_code(MOV, size);
		next(); // TODO: support sizeof()
		return "int";
	} else if (token == "(") {
		next();
		string type_name = parse_expression(";", depth + 1, generate_code);
		expect_token(")", "'(' in parse_expression");
		next();
		return type_name;
	}

	string type_name;
	if (type != symbol) { // prefix
		string op_name = token;
		next();
		if (op_name == "++" || op_name == "--") {
			if (type != symbol) err("unexpected token ('%s') after '%s'!\n", token.c_str(), op_name.c_str());
			string name = token;
			auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
			if (symbol_type_name != "int") err("Operator '++' and '--' supports only 'int'!\n");
			if (is_global) {
				if (generate_code) add_assembly_code(GET, offset, name + "\t" + symbol_type_name);
			} else {
				if (generate_code) add_assembly_code(LGET, offset, name + "\t" + symbol_type_name);
			}
			if (op_name == "++") {
				if (generate_code) add_assembly_code(INC);
			} else {
				if (generate_code) add_assembly_code(DEC);
			}
			if (is_global) {
				if (generate_code) add_assembly_code(PUT, offset, name + "\t" + symbol_type_name);
			} else {
				if (generate_code) add_assembly_code(LPUT, offset, name + "\t" + symbol_type_name);
			}
			next();
			type_name = "int";
		} else {
			type_name = parse_expression(op_name, depth + 1, generate_code);
		}
	} else {
		string name = token;
		next();
		while (token == "::") {
			name += token; next();
			if (type != symbol) { err("unexpected token after '::'!\n"); }
			name += token; next();
		}
		if (token == "(") {
			type_name = parse_function(name);
		} else if (token == "=") {
			auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
			if (is_global) {
				if (generate_code) add_assembly_code(LEA, offset, name + "\t" + type_name);
			} else {
				if (generate_code) add_assembly_code(LLEA, offset, name + "\t" + type_name);
			}
			if (generate_code) add_assembly_code(PUSH);
			next();
			parse_expression(",", depth + 1, generate_code);
			if (generate_code) add_assembly_code(SPUT, offset, name + "\t" + type_name);
			type_name = symbol_type_name;
		} else if (token == "+=" || token == "-=" || token == "*=" || token == "/=" || token == "%=" ||
				token == "<<=" || token == ">>=" || token == "&=" || token == "|=" || token == "&&=" || token == "||=") {
			string op_name = token;
			auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
			if (is_global) {
				if (generate_code) add_assembly_code(LEA, offset, name + "\t" + type_name);
			} else {
				if (generate_code) add_assembly_code(LLEA, offset, name + "\t" + type_name);
			}
			if (generate_code) add_assembly_code(PUSH);
			next();
			string b_type = parse_expression(",", depth + 1, generate_code);
			if (generate_code) add_assembly_code(SPUT, offset, name + "\t" + type_name);
			type_name = build_code_for_op2(symbol_type_name, op_name, b_type);
			if (is_global) {
				if (generate_code) add_assembly_code(PUT, offset, name + "\t" + type_name);
			} else {
				if (generate_code) add_assembly_code(LPUT, offset, name + "\t" + type_name);
			}
		} else if (token == "++" || token == "--") { // suffix/postfix
			auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
			if (is_global) {
				if (generate_code) add_assembly_code(GET, offset, name + "\t" + type_name);
			} else {
				if (generate_code) add_assembly_code(LGET, offset, name + "\t" + type_name);
			}
			if (generate_code) add_assembly_code(PUSH);
			if (token == "++") {
				if (generate_code) add_assembly_code(INC);
			} else {
				if (generate_code) add_assembly_code(DEC);
			}
			if (is_global) {
				if (generate_code) add_assembly_code(PUT, offset, name + "\t" + type_name);
			} else {
				if (generate_code) add_assembly_code(LPUT, offset, name + "\t" + type_name);
			}
			if (generate_code) add_assembly_code(POP);
			next();
			type_name = symbol_type_name;
		} else if (token == "{") {
			// TODO: initializer
			skip_until("}", "");
		} else if (token == "[") {
			auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
			log<3>("symbol_type_name: '%s'\n", symbol_type_name.c_str());
			if (symbol_type_name.substr(symbol_type_name.size() - 1) == "*") {
				type_name = parse_pointer_derefer(name, symbol_type_name,
						offset, is_global, generate_code, depth + 1);
			} else {
				type_name = parse_array_element(name, symbol_type_name,
						offset, is_global, generate_code, depth + 1);
			}
		} else if (token == "." || token == "->") {
			// TODO: find member
			next();
		} else if (token == ".*" || token == "->*") {
			// TODO: find member
			next();
		} else {
			auto it = enum_types.find(name);
			if (it != enum_types.end()) {
				int value = it->second.second;
				if (generate_code) add_assembly_code(MOV, value);
				type_name = "int";
			} else {
				auto [ is_global, offset, symbol_type_name, is_code ] = query_symbol(name);
				if (is_global) {
					if (symbol_type_name == "int") {
						if (generate_code) add_assembly_code(GET, offset, name + "\t" + symbol_type_name);
					} else {
						if (generate_code) add_assembly_code(LEA, offset, name + "\t" + symbol_type_name);
					}
				} else {
					if (symbol_type_name == "int") {
						if (generate_code) add_assembly_code(LGET, offset, name + "\t" + symbol_type_name);
					} else {
						if (generate_code) add_assembly_code(LLEA, offset, name + "\t" + symbol_type_name);
					}
				}
				if (is_code) {
					type_name = "(*)(" + symbol_type_name + ")";
				} else {
					type_name = symbol_type_name;
				}
			}
		}
	}

	while (precedence(token) < precedence(stop_token)) {
		string op_name = token;
		next();
		if (generate_code) add_assembly_code(PUSH);
		string b_type = parse_expression(op_name, depth + 1, generate_code);
		type_name = build_code_for_op(type_name, op_name, b_type);
	}

	log<3>("[DEBUG] >(%d) %s (stop at '%s', token = '%s') return '%s'\n",
			depth, __FUNCTION__, stop_token.c_str(), token.c_str(), type_name.c_str());
	return type_name;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa18, %rsp            # imm = 0xA18
movl %ecx, -0x2c(%rbp)
movl %edx, %eax
movq %rdi, %r13
movq %rsi, -0x118(%rbp)
movq (%rsi), %rcx
movq 0x1a4d6(%rip), %r8      # 0x232a0
leaq 0x12b19(%rip), %rdi     # 0x1b8ea
leaq 0x12b50(%rip), %rdx     # 0x1b928
movq %rax, -0xe0(%rbp)
movl %eax, %esi
xorl %eax, %eax
callq 0x151ad
movl 0x1a4aa(%rip), %eax     # 0x23298
cmpl $0x3, %eax
je 0x8ea9
cmpl $0x2, %eax
jne 0x90ac
leaq -0x9c0(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x1a48e(%rip), %rsi     # 0x232a0
movq 0x1a48f(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x9d0(%rbp), %rbx
movq %rbx, %rdi
callq 0x16942
movq %rbx, %rdi
callq 0x5fc6
movl %eax, %ebx
movq -0x9d0(%rbp), %rdi
cmpq %r14, %rdi
je 0x8e50
movq -0x9c0(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x0, -0x2c(%rbp)
je 0x93ba
leaq -0x9a0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x13615(%rip), %rdx     # 0x1c481
leaq -0x9b0(%rbp), %r14
movq %r14, %rdi
movq %rdx, %rsi
callq 0x169e0
movl $0x4, %edi
movl %ebx, %esi
movq %r14, %rdx
callq 0x4d40
movq -0x9b0(%rbp), %rdi
cmpq %r15, %rdi
je 0x93ba
movq -0x9a0(%rbp), %rsi
jmp 0x93b2
leaq -0x9e0(%rbp), %r14
movq %r14, -0x10(%r14)
movq 0x1a3e5(%rip), %rsi     # 0x232a0
movq 0x1a3e6(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x9f0(%rbp), %rbx
movq %rbx, %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
movq %rbx, %rsi
callq 0x60d3
movq -0x9f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x8efe
movq -0x9e0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0xc8(%rbp), %rbx
leaq 0x4(%rbx), %rsi
shrq $0x2, %rsi
leaq -0x100(%rbp), %rdi
leaq -0x70(%rbp), %rdx
callq 0x14eae
incq %rbx
movq -0x100(%rbp), %rdi
movq -0xd0(%rbp), %rsi
movq %rbx, %rdx
callq 0x3180
leaq -0x70(%rbp), %rdi
callq 0x55eb
leaq -0x40(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12fae(%rip), %rsi     # 0x1befc
leaq 0x12fb2(%rip), %rdx     # 0x1bf07
leaq -0x50(%rbp), %rdi
callq 0x169e0
leaq -0x5e0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5f0(%rbp), %rdi
callq 0x16942
leaq -0x230(%rbp), %rdi
leaq -0x100(%rbp), %rsi
callq 0x1576c
leaq -0x5c0(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x5d0(%rbp), %rdi
callq 0x16942
leaq -0x5f0(%rbp), %rdi
leaq -0x230(%rbp), %rsi
leaq -0x5d0(%rbp), %rdx
callq 0x440a
movq %rax, %rbx
movq -0x5d0(%rbp), %rdi
cmpq %r12, %rdi
je 0x8fee
movq -0x5c0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x230(%rbp), %rdi
testq %rdi, %rdi
je 0x9009
movq -0x220(%rbp), %rsi
subq %rdi, %rsi
callq 0x31d0
movq -0x5f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x9024
movq -0x5e0(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x0, -0x2c(%rbp)
je 0x98ec
leaq -0x88(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x98(%rbp), %rdi
callq 0x16942
leaq 0x13429(%rip), %rsi     # 0x1c480
leaq -0x98(%rbp), %rdi
callq 0x3360
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
leaq -0x98(%rbp), %rdi
callq 0x30c0
leaq -0x208(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x9884
movq %rdx, -0x218(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x208(%rbp)
jmp 0x988c
leaq 0x1a1ed(%rip), %rdi     # 0x232a0
leaq 0x12860(%rip), %rsi     # 0x1b91a
callq 0x30b0
testl %eax, %eax
je 0x91b7
leaq 0x1a1d2(%rip), %rdi     # 0x232a0
leaq 0x128ef(%rip), %rsi     # 0x1b9c4
callq 0x30b0
testl %eax, %eax
je 0x93e2
leaq 0x10(%r13), %rax
movq %rax, -0x110(%rbp)
movq %rax, (%r13)
movq $0x0, 0x8(%r13)
movb $0x0, 0x10(%r13)
cmpl $0x1, 0x1a193(%rip)     # 0x23298
movzbl -0x2c(%rbp), %eax
movl %eax, -0xd4(%rbp)
movq %r13, -0x78(%rbp)
jne 0x94df
leaq -0x60(%rbp), %rax
movq %rax, -0x10(%rax)
movq 0x1a178(%rip), %rsi     # 0x232a0
movq 0x1a179(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x70(%rbp), %rdi
callq 0x16942
callq 0x572d
leaq 0x1a159(%rip), %rbx     # 0x232a0
leaq 0x12077(%rip), %r14     # 0x1b1c5
leaq -0x70(%rbp), %r15
leaq 0x12832(%rip), %r12     # 0x1b98b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x30b0
testl %eax, %eax
jne 0x95c7
movq 0x1a12d(%rip), %rsi     # 0x232a0
movq 0x1a12e(%rip), %rdx     # 0x232a8
movq %r15, %rdi
callq 0x30c0
callq 0x572d
cmpl $0x1, 0x1a10a(%rip)     # 0x23298
je 0x919a
movq %r12, %rdi
xorl %eax, %eax
callq 0x1546f
movq 0x1a0ff(%rip), %rsi     # 0x232a0
movq 0x1a100(%rip), %rdx     # 0x232a8
movq %r15, %rdi
callq 0x30c0
callq 0x572d
jmp 0x9159
callq 0x572d
leaq -0x5a0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x127f6(%rip), %rsi     # 0x1b9c4
leaq 0x127f0(%rip), %rdx     # 0x1b9c5
leaq -0x5b0(%rbp), %rdi
callq 0x169e0
leaq -0x580(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12727(%rip), %rsi     # 0x1b91a
leaq 0x12726(%rip), %rdx     # 0x1b920
leaq -0x590(%rbp), %rdi
callq 0x169e0
leaq -0x5b0(%rbp), %rdi
leaq -0x590(%rbp), %rsi
callq 0x5c40
movq -0x590(%rbp), %rdi
cmpq %r15, %rdi
je 0x9234
movq -0x580(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x5b0(%rbp), %rdi
cmpq %r14, %rdi
je 0x924f
movq -0x5a0(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
leaq -0x980(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11fa9(%rip), %rsi     # 0x1b20f
leaq 0x11fa3(%rip), %rdx     # 0x1b210
leaq -0x990(%rbp), %rbx
movq %rbx, %rdi
callq 0x169e0
movq -0xe0(%rbp), %rdx
incl %edx
leaq -0xa30(%rbp), %rdi
movq %rbx, %rsi
xorl %ecx, %ecx
callq 0x8d9d
leaq -0xa20(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x92b5
movq -0xa20(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x990(%rbp), %rdi
cmpq %r14, %rdi
je 0x92d0
movq -0x980(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x560(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x128a3(%rip), %rsi     # 0x1bb85
leaq 0x1289d(%rip), %rdx     # 0x1bb86
leaq -0x570(%rbp), %rdi
callq 0x169e0
leaq -0x540(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x12613(%rip), %rsi     # 0x1b91a
leaq 0x12612(%rip), %rdx     # 0x1b920
leaq -0x550(%rbp), %rdi
callq 0x169e0
leaq -0x570(%rbp), %rdi
leaq -0x550(%rbp), %rsi
callq 0x5c40
movq -0x550(%rbp), %rdi
cmpq %r15, %rdi
je 0x9348
movq -0x540(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x570(%rbp), %rdi
cmpq %r14, %rdi
je 0x9363
movq -0x560(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x0, -0x2c(%rbp)
je 0x93ba
leaq -0x960(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x13106(%rip), %rdx     # 0x1c481
leaq -0x970(%rbp), %rbx
movq %rbx, %rdi
movq %rdx, %rsi
callq 0x169e0
movl $0x4, %edi
movl $0x4, %esi
movq %rbx, %rdx
callq 0x4d40
movq -0x970(%rbp), %rdi
cmpq %r14, %rdi
je 0x93ba
movq -0x960(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
leaq 0x10(%r13), %rax
movq %rax, (%r13)
leaq 0x12b13(%rip), %rsi     # 0x1bee1
leaq 0x12b0f(%rip), %rdx     # 0x1bee4
movq %r13, %rdi
callq 0x169e0
jmp 0xa303
callq 0x572d
leaq -0x940(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11e16(%rip), %rsi     # 0x1b20f
leaq 0x11e10(%rip), %rdx     # 0x1b210
leaq -0x950(%rbp), %rbx
movq %rbx, %rdi
callq 0x169e0
movq -0xe0(%rbp), %rdx
incl %edx
movzbl -0x2c(%rbp), %ecx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x8d9d
movq -0x950(%rbp), %rdi
cmpq %r14, %rdi
je 0x9442
movq -0x940(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x520(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12731(%rip), %rsi     # 0x1bb85
leaq 0x1272b(%rip), %rdx     # 0x1bb86
leaq -0x530(%rbp), %rdi
callq 0x169e0
leaq -0x500(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x124a8(%rip), %rsi     # 0x1b921
leaq 0x124b8(%rip), %rdx     # 0x1b938
leaq -0x510(%rbp), %rdi
callq 0x169e0
leaq -0x530(%rbp), %rdi
leaq -0x510(%rbp), %rsi
callq 0x5c40
movq -0x510(%rbp), %rdi
cmpq %r15, %rdi
je 0x94ba
movq -0x500(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x530(%rbp), %rdi
cmpq %r14, %rdi
je 0x94d5
movq -0x520(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
jmp 0xa303
leaq -0x60(%rbp), %r15
movq %r15, -0x10(%r15)
movq 0x19db2(%rip), %rsi     # 0x232a0
movq 0x19db3(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x70(%rbp), %rdi
callq 0x16942
callq 0x572d
leaq 0x11cbb(%rip), %rsi     # 0x1b1c8
leaq -0x70(%rbp), %rdi
callq 0x30b0
testl %eax, %eax
je 0x9980
leaq 0x11ca6(%rip), %rsi     # 0x1b1cb
leaq -0x70(%rbp), %rdi
callq 0x30b0
testl %eax, %eax
je 0x9980
leaq -0x4c0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4d0(%rbp), %rdi
callq 0x16942
movq -0xe0(%rbp), %rax
leal 0x1(%rax), %edx
leaq -0xd0(%rbp), %rdi
leaq -0x4d0(%rbp), %rsi
movl -0xd4(%rbp), %ecx
callq 0x8d9d
leaq -0xd0(%rbp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x95ab
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x4d0(%rbp), %rdi
cmpq %r14, %rdi
je 0x9f8e
movq -0x4c0(%rbp), %rsi
jmp 0x9f86
leaq 0x19cd2(%rip), %rdi     # 0x232a0
leaq 0x123ef(%rip), %rsi     # 0x1b9c4
callq 0x30b0
testl %eax, %eax
je 0x9bab
leaq 0x19cb7(%rip), %rdi     # 0x232a0
leaq 0x11bf6(%rip), %rsi     # 0x1b1e6
callq 0x30b0
testl %eax, %eax
je 0x9d1e
leaq 0x19c9c(%rip), %rdi     # 0x232a0
leaq 0x11be7(%rip), %rsi     # 0x1b1f2
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19c81(%rip), %rdi     # 0x232a0
leaq 0x11bcf(%rip), %rsi     # 0x1b1f5
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19c66(%rip), %rdi     # 0x232a0
leaq 0x11bb7(%rip), %rsi     # 0x1b1f8
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19c4b(%rip), %rdi     # 0x232a0
leaq 0x11b9f(%rip), %rsi     # 0x1b1fb
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19c30(%rip), %rdi     # 0x232a0
leaq 0x11b87(%rip), %rsi     # 0x1b1fe
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19c15(%rip), %rdi     # 0x232a0
leaq 0x11b73(%rip), %rsi     # 0x1b205
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19bfa(%rip), %rdi     # 0x232a0
leaq 0x11b54(%rip), %rsi     # 0x1b201
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19bdf(%rip), %rdi     # 0x232a0
leaq 0x11fe7(%rip), %rsi     # 0x1b6af
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19bc4(%rip), %rdi     # 0x232a0
leaq 0x11fd0(%rip), %rsi     # 0x1b6b3
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19ba9(%rip), %rdi     # 0x232a0
leaq 0x11fb0(%rip), %rsi     # 0x1b6ae
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19b8e(%rip), %rdi     # 0x232a0
leaq 0x11f99(%rip), %rsi     # 0x1b6b2
callq 0x30b0
testl %eax, %eax
je 0x9abc
leaq 0x19b73(%rip), %rdi     # 0x232a0
leaq 0x11a94(%rip), %rsi     # 0x1b1c8
callq 0x30b0
testl %eax, %eax
je 0xa964
leaq 0x19b58(%rip), %rdi     # 0x232a0
leaq 0x11a7c(%rip), %rsi     # 0x1b1cb
callq 0x30b0
testl %eax, %eax
je 0xa964
leaq 0x19b3d(%rip), %rdi     # 0x232a0
leaq 0x11d05(%rip), %rsi     # 0x1b46f
callq 0x30b0
testl %eax, %eax
je 0xacfe
leaq 0x19b22(%rip), %rdi     # 0x232a0
leaq 0x123da(%rip), %rsi     # 0x1bb5f
callq 0x30b0
testl %eax, %eax
je 0xad98
leaq 0x19b07(%rip), %rdi     # 0x232a0
leaq 0x129bd(%rip), %rsi     # 0x1c15d
callq 0x30b0
testl %eax, %eax
je 0xad8e
leaq 0x19aec(%rip), %rdi     # 0x232a0
leaq 0x11cae(%rip), %rsi     # 0x1b469
callq 0x30b0
testl %eax, %eax
je 0xad8e
leaq 0x19ad1(%rip), %rdi     # 0x232a0
leaq 0x119fa(%rip), %rsi     # 0x1b1d0
callq 0x30b0
testl %eax, %eax
je 0xad8e
leaq 0x19ab6(%rip), %rdi     # 0x232a0
leaq 0x119e2(%rip), %rsi     # 0x1b1d3
callq 0x30b0
testl %eax, %eax
je 0xad8e
leaq 0x19da3(%rip), %rdi     # 0x235a8
leaq -0x70(%rbp), %rsi
callq 0x19546
testq %rax, %rax
je 0xb014
cmpb $0x0, -0x2c(%rbp)
je 0x986f
movl 0x48(%rax), %ebx
leaq -0x260(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12c4f(%rip), %rdx     # 0x1c481
leaq -0x270(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x270(%rbp), %rdx
movl $0x4, %edi
movl %ebx, %esi
callq 0x4d40
movq -0x270(%rbp), %rdi
cmpq %r14, %rdi
je 0x986f
movq -0x260(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq 0x1266b(%rip), %rsi     # 0x1bee1
movq -0x78(%rbp), %rdi
callq 0x3270
jmp 0xa94e
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rsi
leaq -0x218(%rbp), %rdx
movq %rsi, 0x8(%rdx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movl $0x4, %edi
movl %ebx, %esi
callq 0x4d40
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0x98d1
movq -0x208(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0x98ec
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
leaq 0x10(%r13), %rax
movq %rax, (%r13)
leaq 0x125fc(%rip), %rsi     # 0x1befc
leaq 0x12600(%rip), %rdx     # 0x1bf07
movq %r13, %rdi
callq 0x169e0
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0x9924
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x993d
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x100(%rbp), %rdi
testq %rdi, %rdi
je 0x9958
movq -0xf0(%rbp), %rsi
subq %rdi, %rsi
callq 0x31d0
leaq -0xc0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa303
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xa303
cmpl $0x1, 0x19911(%rip)     # 0x23298
je 0x99a2
movq 0x19910(%rip), %rsi     # 0x232a0
movq -0x70(%rbp), %rdx
leaq 0x11f9e(%rip), %rdi     # 0x1b939
xorl %eax, %eax
callq 0x1546f
leaq -0x40(%rbp), %r12
movq %r12, -0x10(%r12)
movq 0x198ee(%rip), %rsi     # 0x232a0
movq 0x198ef(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x50(%rbp), %rdi
callq 0x16942
leaq -0x4e0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4f0(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x4f0(%rbp), %rsi
callq 0x6c3f
movq -0x4f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x9a15
movq -0x4e0(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0xc8(%rbp), %rbx
leaq 0x124be(%rip), %rsi     # 0x1bee1
movq %rbx, %rdi
callq 0x30b0
testl %eax, %eax
je 0x9a3d
leaq 0x11f28(%rip), %rdi     # 0x1b95e
xorl %eax, %eax
callq 0x1546f
cmpb $0x1, -0xa0(%rbp)
jne 0x9c2c
cmpb $0x0, -0x2c(%rbp)
je 0x9cbc
movl -0xa8(%rbp), %r14d
leaq 0x12a1e(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1540f
leaq -0x930(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x930(%rbp), %rdx
movl $0x6, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x920(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c9d
movq -0x920(%rbp), %rsi
jmp 0x9c95
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq 0x197d5(%rip), %rsi     # 0x232a0
movq 0x197d6(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0x50(%rbp), %rdi
callq 0x16942
leaq -0x420(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x430(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x430(%rbp), %rsi
callq 0x6c3f
movq -0x430(%rbp), %rdi
cmpq %r14, %rdi
je 0x9b2e
movq -0x420(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0xa318
cmpb $0x0, -0x2c(%rbp)
je 0xa3f5
movl -0xa8(%rbp), %ebx
leaq 0x1292e(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x810(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x810(%rbp), %rdx
movl $0x5, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x800(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa387
movq -0x800(%rbp), %rsi
jmp 0xa37f
leaq -0x4a0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x4b0(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x4b0(%rbp), %rsi
callq 0x82df
leaq -0xd0(%rbp), %rbx
movq %r13, %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x9c10
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x4b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xa94e
movq -0x4a0(%rbp), %rsi
jmp 0xa946
cmpb $0x0, -0x2c(%rbp)
je 0x9cbc
movl -0xa8(%rbp), %r14d
leaq 0x1283c(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1540f
leaq -0x910(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x910(%rbp), %rdx
movl $0x9, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x900(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9c9d
movq -0x900(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9cbc
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq 0x11505(%rip), %rsi     # 0x1b1c8
leaq -0x70(%rbp), %rdi
callq 0x30b0
testl %eax, %eax
je 0x9de5
cmpb $0x0, -0x2c(%rbp)
je 0x9e36
leaq -0x8c0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12791(%rip), %rdx     # 0x1c481
leaq -0x8d0(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x8d0(%rbp), %rdx
movl $0x14, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x8d0(%rbp), %rdi
jmp 0x9e26
leaq -0x480(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x490(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x490(%rbp), %rsi
callq 0x6c3f
movq -0x490(%rbp), %rdi
cmpq %r14, %rdi
je 0x9d6e
movq -0x480(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0xa74a
cmpb $0x0, -0x2c(%rbp)
je 0xa81b
movl -0xa8(%rbp), %ebx
leaq 0x126ee(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x870(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x870(%rbp), %rdx
movl $0x5, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x860(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa7b3
movq -0x860(%rbp), %rsi
jmp 0xa7ab
cmpb $0x0, -0x2c(%rbp)
je 0x9e36
leaq -0x8e0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x12684(%rip), %rdx     # 0x1c481
leaq -0x8f0(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x8f0(%rbp), %rdx
movl $0x13, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x8f0(%rbp), %rdi
cmpq %r14, %rdi
je 0x9e36
movq (%r14), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0x9eaa
cmpb $0x0, -0x2c(%rbp)
je 0x9f3a
movl -0xa8(%rbp), %r14d
leaq 0x12629(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1540f
leaq -0x8b0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x8b0(%rbp), %rdx
movl $0x7, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x8a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f1b
movq -0x8a0(%rbp), %rsi
jmp 0x9f13
cmpb $0x0, -0x2c(%rbp)
je 0x9f3a
movl -0xa8(%rbp), %r14d
leaq 0x125be(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x1540f
leaq -0x890(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x890(%rbp), %rdx
movl $0xa, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x880(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f1b
movq -0x880(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f3a
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
movq 0x8(%r13), %rdx
leaq 0x11f97(%rip), %rcx     # 0x1bee1
movl $0x3, %r8d
movq %r13, %rdi
xorl %esi, %esi
callq 0x32a0
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x9f79
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0x9f8e
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
je 0x9fa3
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0xe0(%rbp), %rax
incl %eax
movl %eax, -0x104(%rbp)
leaq -0x1f8(%rbp), %r13
leaq -0x1d8(%rbp), %r14
leaq -0x50(%rbp), %rbx
leaq -0x1e8(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq 0x192c7(%rip), %rsi     # 0x232a0
movq 0x192c8(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
movq %r13, %rdi
callq 0x16942
movq %r13, %rdi
callq 0x5d9f
movl %eax, %r15d
leaq -0x1c8(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x118(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x16942
movq %r14, %rdi
callq 0x5d9f
movl %eax, %r12d
movq -0x1d8(%rbp), %rdi
leaq -0x1c8(%rbp), %rax
cmpq %rax, %rdi
je 0xa04a
movq -0x1c8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x1f8(%rbp), %rdi
leaq -0x1e8(%rbp), %rax
cmpq %rax, %rdi
je 0xa06c
movq -0x1e8(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpl %r12d, %r15d
jge 0xa2ce
leaq -0xc0(%rbp), %rax
movq %rax, -0xd0(%rbp)
movq 0x19216(%rip), %rsi     # 0x232a0
movq 0x19217(%rip), %rdx     # 0x232a8
addq %rsi, %rdx
leaq -0xd0(%rbp), %rdi
callq 0x16942
callq 0x572d
cmpb $0x0, -0x2c(%rbp)
je 0xa103
leaq -0x1a8(%rbp), %rax
movq %rax, -0x1b8(%rbp)
leaq -0x1b8(%rbp), %r15
movq %r15, %rdi
leaq 0x123b7(%rip), %rdx     # 0x1c481
movq %rdx, %rsi
callq 0x169e0
movl $0x1, %edi
xorl %esi, %esi
movq %r15, %rdx
callq 0x4d40
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0xa103
movq -0x1a8(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x188(%rbp), %rax
movq %rax, -0x198(%rbp)
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x198(%rbp), %r15
movq %r15, %rdi
callq 0x16942
leaq -0x70(%rbp), %rdi
movq %r15, %rsi
movl -0x104(%rbp), %edx
movl -0xd4(%rbp), %ecx
callq 0x8d9d
movq -0x198(%rbp), %rdi
leaq -0x188(%rbp), %rax
cmpq %rax, %rdi
je 0xa16b
movq -0x188(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x148(%rbp), %rax
movq %rax, -0x158(%rbp)
movq -0x78(%rbp), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
addq %rsi, %rdx
leaq -0x158(%rbp), %rdi
callq 0x16942
leaq -0x128(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0xd0(%rbp), %rsi
movq -0xc8(%rbp), %rdx
addq %rsi, %rdx
leaq -0x138(%rbp), %rdi
callq 0x16942
leaq -0x168(%rbp), %rax
movq %rax, -0x178(%rbp)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x178(%rbp), %r15
movq %r15, %rdi
callq 0x16942
movq %rbx, %rdi
leaq -0x158(%rbp), %rsi
leaq -0x138(%rbp), %rdx
movq %r15, %rcx
callq 0x73de
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3240
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0xa224
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
cmpq %rax, %rdi
je 0xa246
movq -0x168(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0xa268
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0xa28a
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0xa2a3
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0x9fc4
movq -0xc0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0x9fc4
movq -0x118(%rbp), %rax
movq (%rax), %rcx
movq 0x18fc1(%rip), %r8      # 0x232a0
movq -0x78(%rbp), %r13
movq (%r13), %r9
leaq 0x116d8(%rip), %rdi     # 0x1b9c6
leaq 0x11633(%rip), %rdx     # 0x1b928
movq -0xe0(%rbp), %rsi
xorl %eax, %eax
callq 0x151ad
movq %r13, %rax
addq $0xa18, %rsp            # imm = 0xA18
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
cmpb $0x0, -0x2c(%rbp)
je 0xa3f5
movl -0xa8(%rbp), %ebx
leaq 0x12151(%rip), %rdx     # 0x1c480
leaq -0x98(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x7f0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x7f0(%rbp), %rdx
movl $0x8, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x7e0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa387
movq -0x7e0(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa3a6
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x400(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x120c9(%rip), %rdx     # 0x1c481
leaq -0x410(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x410(%rbp), %rdx
movl $0x1, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x410(%rbp), %rdi
cmpq %r14, %rdi
je 0xa3f5
movq -0x400(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
leaq -0x3e0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x10dfd(%rip), %rsi     # 0x1b209
leaq 0x10df7(%rip), %rdx     # 0x1b20a
leaq -0x3f0(%rbp), %rdi
callq 0x169e0
movq -0xe0(%rbp), %rax
leal 0x1(%rax), %edx
leaq -0x98(%rbp), %rdi
leaq -0x3f0(%rbp), %rsi
movl -0xd4(%rbp), %ecx
callq 0x8d9d
movq -0x3f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xa45d
movq -0x3e0(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x0, -0x2c(%rbp)
je 0xa4eb
movl -0xa8(%rbp), %ebx
leaq 0x1200c(%rip), %rdx     # 0x1c480
leaq -0x100(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x7d0(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x7d0(%rbp), %rdx
movl $0xc, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x7c0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4cc
movq -0x7c0(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0xf0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa4eb
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x7a0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x7b0(%rbp), %rdi
callq 0x16942
leaq -0x3c0(%rbp), %r13
movq %r13, -0x10(%r13)
movq -0x50(%rbp), %rsi
movq -0x48(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3d0(%rbp), %rdi
callq 0x16942
leaq -0x780(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x98(%rbp), %rsi
movq -0x90(%rbp), %rdx
addq %rsi, %rdx
leaq -0x790(%rbp), %rdi
callq 0x16942
leaq -0x100(%rbp), %rdi
leaq -0x3d0(%rbp), %rdx
callq 0x6ec0
leaq -0x100(%rbp), %rbx
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
leaq -0xf0(%rbp), %r12
cmpq %r12, %rdi
je 0xa5a1
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x790(%rbp), %rdi
cmpq %r15, %rdi
je 0xa5bc
movq -0x780(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x3d0(%rbp), %rdi
cmpq %r13, %rdi
je 0xa5d7
movq -0x3c0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x7b0(%rbp), %rdi
cmpq %r14, %rdi
movq -0x78(%rbp), %r13
je 0xa5f6
movq -0x7a0(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0xa668
cmpb $0x0, -0x2c(%rbp)
je 0xa6f2
movl -0xa8(%rbp), %ebx
leaq 0x11e6a(%rip), %rdx     # 0x1c480
leaq -0x100(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x770(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x770(%rbp), %rdx
movl $0x7, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x760(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa6d7
movq -0x760(%rbp), %rsi
jmp 0xa6cf
cmpb $0x0, -0x2c(%rbp)
je 0xa6f2
movl -0xa8(%rbp), %ebx
leaq 0x11e01(%rip), %rdx     # 0x1c480
leaq -0x100(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x750(%rbp), %rdi
leaq -0x100(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x750(%rbp), %rdx
movl $0xa, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x740(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa6d7
movq -0x740(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x100(%rbp), %rdi
cmpq %r12, %rdi
je 0xa6f2
movq -0xf0(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa711
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
leaq -0x40(%rbp), %rbx
je 0xa734
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x50(%rbp), %rdi
cmpq %rbx, %rdi
je 0xa94e
movq -0x40(%rbp), %rsi
jmp 0xa946
cmpb $0x0, -0x2c(%rbp)
je 0xa81b
movl -0xa8(%rbp), %ebx
leaq 0x11d1f(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x850(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x850(%rbp), %rdx
movl $0x8, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x840(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa7b3
movq -0x840(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa7cc
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x460(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11ca3(%rip), %rdx     # 0x1c481
leaq -0x470(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x470(%rbp), %rdx
movl $0x1, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x470(%rbp), %rdi
cmpq %r14, %rdi
je 0xa81b
movq -0x460(%rbp), %rsi
incq %rsi
callq 0x31d0
callq 0x572d
leaq -0x440(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x109d7(%rip), %rsi     # 0x1b209
leaq 0x109d1(%rip), %rdx     # 0x1b20a
leaq -0x450(%rbp), %rdi
callq 0x169e0
movq -0xe0(%rbp), %rax
leal 0x1(%rax), %edx
leaq -0xa10(%rbp), %rdi
leaq -0x450(%rbp), %rsi
movl -0xd4(%rbp), %ecx
callq 0x8d9d
leaq -0xa00(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa887
movq -0xa00(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x450(%rbp), %rdi
cmpq %r14, %rdi
je 0xa8a2
movq -0x440(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x0, -0x2c(%rbp)
je 0xa920
movl -0xa8(%rbp), %ebx
leaq 0x11bcb(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x830(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %r13, %rdx
callq 0x153ab
leaq -0x830(%rbp), %rdx
movl $0xc, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x820(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa907
movq -0x820(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa920
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0xc8(%rbp), %rsi
movq %r13, %rdi
callq 0x3110
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa94e
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
jne 0x9f97
jmp 0x9fa3
leaq -0x3a0(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x3b0(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x3b0(%rbp), %rsi
callq 0x6c3f
movq -0x3b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xa9b4
movq -0x3a0(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0xaa21
cmpb $0x0, -0x2c(%rbp)
je 0xaaf3
movl -0xa8(%rbp), %ebx
leaq 0x11aac(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x730(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x153ab
leaq -0x730(%rbp), %rdx
movl $0x6, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x720(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaa8b
movq -0x720(%rbp), %rsi
jmp 0xaa83
cmpb $0x0, -0x2c(%rbp)
je 0xaaf3
movl -0xa8(%rbp), %ebx
leaq 0x11a48(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x710(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x153ab
leaq -0x710(%rbp), %rdx
movl $0x9, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x700(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaa8b
movq -0x700(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xaaa4
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x380(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x119cb(%rip), %rdx     # 0x1c481
leaq -0x390(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x390(%rbp), %rdx
movl $0x1, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x390(%rbp), %rdi
cmpq %r14, %rdi
je 0xaaf3
movq -0x380(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq 0x187a6(%rip), %rdi     # 0x232a0
leaq 0x106c7(%rip), %rsi     # 0x1b1c8
callq 0x30b0
testl %eax, %eax
je 0xab51
cmpb $0x0, -0x2c(%rbp)
je 0xaba2
leaq -0x6c0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x1195b(%rip), %rdx     # 0x1c481
leaq -0x6d0(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x6d0(%rbp), %rdx
movl $0x14, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x6d0(%rbp), %rdi
jmp 0xab92
cmpb $0x0, -0x2c(%rbp)
je 0xaba2
leaq -0x6e0(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x11918(%rip), %rdx     # 0x1c481
leaq -0x6f0(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x6f0(%rbp), %rdx
movl $0x13, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x6f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xaba2
movq (%r14), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xa0(%rbp)
jne 0xac0f
cmpb $0x0, -0x2c(%rbp)
je 0xace1
movl -0xa8(%rbp), %ebx
leaq 0x118be(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x6b0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x153ab
leaq -0x6b0(%rbp), %rdx
movl $0x7, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x6a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xac79
movq -0x6a0(%rbp), %rsi
jmp 0xac71
cmpb $0x0, -0x2c(%rbp)
je 0xace1
movl -0xa8(%rbp), %ebx
leaq 0x1185a(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x690(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq -0x78(%rbp), %rdx
callq 0x153ab
leaq -0x690(%rbp), %rdx
movl $0xa, %edi
movl %ebx, %esi
callq 0x4d40
leaq -0x680(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xac79
movq -0x680(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xac92
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x360(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x117dd(%rip), %rdx     # 0x1c481
leaq -0x370(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x370(%rbp), %rdx
movl $0x2, %edi
xorl %esi, %esi
callq 0x4d40
movq -0x370(%rbp), %rdi
cmpq %r14, %rdi
je 0xace1
movq -0x360(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x78(%rbp), %r13
callq 0x572d
leaq -0xc8(%rbp), %rsi
movq %r13, %rdi
callq 0x3110
jmp 0xa92f
leaq -0x340(%rbp), %r14
movq %r14, -0x10(%r14)
leaq 0x104fd(%rip), %rsi     # 0x1b20d
leaq 0x104f7(%rip), %rdx     # 0x1b20e
leaq -0x350(%rbp), %rdi
callq 0x169e0
leaq -0x320(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x1174c(%rip), %rdx     # 0x1c481
leaq -0x330(%rbp), %rdi
movq %rdx, %rsi
callq 0x169e0
leaq -0x350(%rbp), %rdi
leaq -0x330(%rbp), %rsi
callq 0x5cae
movq -0x330(%rbp), %rdi
cmpq %r15, %rdi
je 0xad72
movq -0x320(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x350(%rbp), %rdi
cmpq %r14, %rdi
je 0xa94e
movq -0x340(%rbp), %rsi
jmp 0xa946
callq 0x572d
jmp 0xa94e
leaq -0x300(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x310(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x310(%rbp), %rsi
callq 0x6c3f
movq -0x310(%rbp), %rdi
cmpq %r14, %rdi
je 0xade8
movq -0x300(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0xc8(%rbp), %rsi
leaq 0x10bb3(%rip), %rdi     # 0x1b9a9
xorl %eax, %eax
callq 0x151ad
leaq -0xc8(%rbp), %rsi
movq 0x8(%rsi), %rdx
decq %rdx
leaq -0x50(%rbp), %rdi
movq $-0x1, %rcx
callq 0x31f0
leaq 0x103af(%rip), %rsi     # 0x1b1d1
leaq -0x50(%rbp), %r14
movq %r14, %rdi
callq 0x30b0
movl %eax, %ebx
movq (%r14), %rdi
leaq -0x40(%rbp), %r14
cmpq %r14, %rdi
je 0xae48
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
testl %ebx, %ebx
je 0xaf2e
leaq -0x2a0(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2b0(%rbp), %rdi
callq 0x16942
leaq -0x280(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x290(%rbp), %rdi
callq 0x16942
movl -0xa8(%rbp), %ecx
movzbl -0xa0(%rbp), %r8d
movq -0xe0(%rbp), %rax
incl %eax
movl %eax, (%rsp)
leaq -0x50(%rbp), %rdi
leaq -0x2b0(%rbp), %rsi
leaq -0x290(%rbp), %rdx
movl -0xd4(%rbp), %r9d
callq 0xcadc
leaq -0x50(%rbp), %rbx
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0xaef7
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x290(%rbp), %rdi
cmpq %r12, %rdi
je 0xaf12
movq -0x280(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x2b0(%rbp), %rdi
cmpq %r15, %rdi
je 0xa92f
movq -0x2a0(%rbp), %rsi
jmp 0xb007
leaq -0x2e0(%rbp), %r15
movq %r15, -0x10(%r15)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2f0(%rbp), %rdi
callq 0x16942
leaq -0x2c0(%rbp), %r12
movq %r12, -0x10(%r12)
movq -0xc8(%rbp), %rsi
movq -0xc0(%rbp), %rdx
addq %rsi, %rdx
leaq -0x2d0(%rbp), %rdi
callq 0x16942
movl -0xa8(%rbp), %ecx
movzbl -0xa0(%rbp), %r8d
movq -0xe0(%rbp), %rax
incl %eax
movl %eax, (%rsp)
leaq -0x50(%rbp), %rdi
leaq -0x2f0(%rbp), %rsi
leaq -0x2d0(%rbp), %rdx
movl -0xd4(%rbp), %r9d
callq 0xc325
leaq -0x50(%rbp), %rbx
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0xafd5
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x2d0(%rbp), %rdi
cmpq %r12, %rdi
je 0xaff0
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x2f0(%rbp), %rdi
cmpq %r15, %rdi
je 0xa92f
movq -0x2e0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xa92f
leaq -0x240(%rbp), %r14
movq %r14, -0x10(%r14)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
addq %rsi, %rdx
leaq -0x250(%rbp), %rdi
callq 0x16942
leaq -0xd0(%rbp), %rdi
leaq -0x250(%rbp), %rsi
callq 0x6c3f
movq -0x250(%rbp), %rdi
cmpq %r14, %rdi
je 0xb064
movq -0x240(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0xc8(%rbp), %rbx
movb 0x28(%rbx), %r14b
leaq 0x10e6b(%rip), %rsi     # 0x1bee1
movq %rbx, %rdi
callq 0x30b0
cmpb $0x1, %r14b
jne 0xb0f8
testl %eax, %eax
je 0xb16c
cmpb $0x0, -0x2c(%rbp)
je 0xb251
movl -0xa8(%rbp), %r14d
leaq 0x113dc(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x650(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x650(%rbp), %rdx
movl $0x5, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x640(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb238
movq -0x640(%rbp), %rsi
jmp 0xb230
testl %eax, %eax
je 0xb1d1
cmpb $0x0, -0x2c(%rbp)
je 0xb251
movl -0xa8(%rbp), %r14d
leaq 0x11368(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x610(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x610(%rbp), %rdx
movl $0x8, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x600(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb238
movq -0x600(%rbp), %rsi
jmp 0xb230
cmpb $0x0, -0x2c(%rbp)
je 0xb251
movl -0xa8(%rbp), %r14d
leaq 0x112fc(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x670(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x670(%rbp), %rdx
movl $0x6, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x660(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb238
movq -0x660(%rbp), %rsi
jmp 0xb230
cmpb $0x0, -0x2c(%rbp)
je 0xb251
movl -0xa8(%rbp), %r14d
leaq 0x1129b(%rip), %rdx     # 0x1c480
leaq -0x50(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x1540f
leaq -0x630(%rbp), %rdi
leaq -0x50(%rbp), %rsi
movq %rbx, %rdx
callq 0x153ab
leaq -0x630(%rbp), %rdx
movl $0x9, %edi
movl %r14d, %esi
callq 0x4d40
leaq -0x620(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb238
movq -0x620(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb251
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
cmpb $0x1, -0xd0(%rbp)
jne 0xb2a7
leaq 0x10760(%rip), %rsi     # 0x1b9c1
leaq -0x98(%rbp), %rdi
movq %rbx, %rdx
callq 0x15648
leaq 0x1090e(%rip), %rsi     # 0x1bb85
leaq -0x98(%rbp), %rdi
callq 0x3360
leaq -0x40(%rbp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0xb2b8
movq %rdx, -0x50(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x40(%rbp)
jmp 0xb2bf
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3110
jmp 0xa92f
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq -0x50(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x78(%rbp), %rdi
movq %rbx, %rsi
callq 0x3240
movq (%rbx), %rdi
cmpq %r14, %rdi
je 0xb2fa
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa92f
movq -0x88(%rbp), %rsi
jmp 0xb007
movq %rax, %rbx
leaq -0x620(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x620(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
movq %rax, %rbx
leaq -0x660(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x660(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
movq %rax, %rbx
leaq -0x600(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x600(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
movq %rax, %rbx
leaq -0x640(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x640(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
jmp 0xbb39
movq %rax, %rbx
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb3c
movq -0x88(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x270(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x260(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
movq %rax, %rbx
movq -0x250(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x240(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
jmp 0xbfe6
jmp 0xbfe6
movq %rax, %rbx
movq -0x2d0(%rbp), %rdi
cmpq %r12, %rdi
je 0xb470
movq -0x2c0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb470
movq %rax, %rbx
movq -0x2f0(%rbp), %rdi
cmpq %r15, %rdi
je 0xbb3c
movq -0x2e0(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x290(%rbp), %rdi
cmpq %r12, %rdi
je 0xb4b4
movq -0x280(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb4b4
movq %rax, %rbx
movq -0x2b0(%rbp), %rdi
cmpq %r15, %rdi
je 0xbb3c
movq -0x2a0(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
jmp 0xbb39
jmp 0xbb39
movq %rax, %rbx
movq -0x310(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x300(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
movq %rax, %rbx
movq -0x6f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x6e0(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x330(%rbp), %rdi
cmpq %r15, %rdi
je 0xb54a
movq -0x320(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb54a
movq %rax, %rbx
movq -0x350(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x340(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
movq %rax, %rbx
leaq -0x680(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x680(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
movq %rax, %rbx
leaq -0x6a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x6a0(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
jmp 0xbb39
movq %rax, %rbx
leaq -0x700(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x700(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
movq %rax, %rbx
leaq -0x720(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x720(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xbb39
movq %rax, %rbx
movq -0x6d0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x6c0(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x370(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x360(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x390(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x380(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x3b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x3a0(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
jmp 0xbb39
movq %rax, %rbx
leaq -0x840(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x840(%rbp), %rsi
jmp 0xb80a
movq %rax, %rbx
leaq -0x860(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x860(%rbp), %rsi
jmp 0xb80a
jmp 0xb814
jmp 0xb814
jmp 0xbb39
jmp 0xbb39
movq %rax, %rbx
leaq -0x740(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb753
movq -0x740(%rbp), %rsi
jmp 0xb744
movq %rax, %rbx
leaq -0x760(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb753
movq -0x760(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb753
jmp 0xb750
movq %rax, %rbx
movq -0x100(%rbp), %rdi
cmpq %r12, %rdi
jne 0xb973
jmp 0xba7f
jmp 0xba7c
jmp 0xba7c
movq %rax, %rbx
leaq -0x7e0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xba7f
movq -0x7e0(%rbp), %rsi
jmp 0xba72
movq %rax, %rbx
leaq -0x800(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xba7f
movq -0x800(%rbp), %rsi
jmp 0xba72
jmp 0xba7c
jmp 0xba7c
jmp 0xbaba
jmp 0xbaba
movq %rax, %rbx
movq -0x8f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc43
movq -0x8e0(%rbp), %rsi
jmp 0xb900
jmp 0xbc40
movq %rax, %rbx
leaq -0x820(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb817
movq -0x820(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb817
movq %rax, %rbx
leaq -0x40(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbb3c
movq -0x40(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
movq -0x470(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x460(%rbp), %rsi
jmp 0xb9c2
jmp 0xbb39
movq %rax, %rbx
leaq -0x880(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb8e5
movq -0x880(%rbp), %rsi
jmp 0xb8d6
movq %rax, %rbx
leaq -0x8a0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb8e5
movq -0x8a0(%rbp), %rsi
jmp 0xb8d6
jmp 0xb8e2
jmp 0xb8e2
jmp 0xbc40
jmp 0xbc40
movq %rax, %rbx
leaq -0x900(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb8e5
movq -0x900(%rbp), %rsi
jmp 0xb8d6
movq %rax, %rbx
leaq -0x920(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb8e5
movq -0x920(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb8e5
jmp 0xb8e2
movq %rax, %rbx
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbc43
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbc43
jmp 0xbc40
jmp 0xbc40
movq %rax, %rbx
movq -0x8d0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc43
movq -0x8c0(%rbp), %rsi
jmp 0xb900
jmp 0xbc40
movq %rax, %rbx
leaq -0x7c0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xb95f
movq -0x7c0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xb95f
movq %rax, %rbx
leaq -0xf0(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xba7f
movq -0xf0(%rbp), %rsi
jmp 0xba72
jmp 0xba7c
movq %rax, %rbx
movq -0x410(%rbp), %rdi
cmpq %r14, %rdi
je 0xbabd
movq -0x400(%rbp), %rsi
jmp 0xba96
jmp 0xbaba
movq %rax, %rbx
movq -0x450(%rbp), %rdi
cmpq %r14, %rdi
je 0xbb3c
movq -0x440(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbb3c
jmp 0xbb39
movq %rax, %rbx
movq -0x490(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x480(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
movq %rax, %rbx
movq -0x4b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbfe9
movq -0x4a0(%rbp), %rsi
jmp 0xbb57
jmp 0xbfe6
movq %rax, %rbx
movq -0x790(%rbp), %rdi
cmpq %r15, %rdi
je 0xba3f
movq -0x780(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xba3f
movq %rax, %rbx
movq -0x3d0(%rbp), %rdi
cmpq %r13, %rdi
je 0xba5f
movq -0x3c0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xba5f
movq %rax, %rbx
movq -0x7b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xba7f
movq -0x7a0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xba7f
movq %rax, %rbx
leaq -0x88(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbabd
movq -0x88(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbabd
movq %rax, %rbx
movq -0x3f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbabd
movq -0x3e0(%rbp), %rsi
jmp 0xba96
jmp 0xbaba
movq %rax, %rbx
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbadc
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0xbfe9
movq -0x40(%rbp), %rsi
jmp 0xbb57
movq %rax, %rbx
movq -0x430(%rbp), %rdi
cmpq %r14, %rdi
je 0xbadc
movq -0x420(%rbp), %rsi
jmp 0xbad4
movq %rax, %rbx
jmp 0xbadc
jmp 0xbfe6
movq %rax, %rbx
movq -0x4d0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc77
movq -0x4c0(%rbp), %rsi
jmp 0xbc6f
jmp 0xbc3b
movq %rax, %rbx
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbfe9
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbfe9
movq %rax, %rbx
movq -0x4f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc62
movq -0x4e0(%rbp), %rsi
jmp 0xbc5a
movq %rax, %rbx
jmp 0xbc62
jmp 0xbc3b
movq %rax, %rbx
movq -0x970(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x960(%rbp), %rsi
jmp 0xc01c
jmp 0xbf9b
jmp 0xbf9b
jmp 0xbfe6
jmp 0xbc00
movq %rax, %rbx
movq -0x510(%rbp), %rdi
cmpq %r15, %rdi
je 0xbbe3
movq -0x500(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbbe3
movq %rax, %rbx
movq -0x530(%rbp), %rdi
cmpq %r14, %rdi
je 0xbc03
movq -0x520(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbc03
movq %rax, %rbx
movq (%r13), %rdi
addq $0x10, %r13
cmpq %r13, %rdi
je 0xc024
movq %r13, %rax
jmp 0xc019
movq %rax, %rbx
movq -0x950(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x940(%rbp), %rsi
jmp 0xc01c
movq %rax, %rbx
jmp 0xbc77
movq %rax, %rbx
leaq -0xb8(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbc62
movq -0xb8(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x50(%rbp), %rdi
cmpq %r12, %rdi
je 0xbc77
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x70(%rbp), %rdi
cmpq %r15, %rdi
jne 0xbff6
jmp 0xc002
movq %rax, %rbx
movq -0x550(%rbp), %rdi
cmpq %r15, %rdi
je 0xbcac
movq -0x540(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbcac
movq %rax, %rbx
movq -0x570(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x560(%rbp), %rsi
jmp 0xc01c
movq %rax, %rbx
movq -0x990(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x980(%rbp), %rsi
jmp 0xc01c
movq %rax, %rbx
movq -0x590(%rbp), %rdi
cmpq %r15, %rdi
je 0xbd0a
movq -0x580(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbd0a
movq %rax, %rbx
movq -0x5b0(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x5a0(%rbp), %rsi
jmp 0xc01c
jmp 0xbf9b
movq %rax, %rbx
movq -0x218(%rbp), %rdi
cmpq %r12, %rdi
je 0xbd50
movq -0x208(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbd50
jmp 0xbd4d
movq %rax, %rbx
movq -0x98(%rbp), %rdi
cmpq %r14, %rdi
je 0xbe2f
movq -0x88(%rbp), %rsi
jmp 0xbde8
jmp 0xbe2c
movq %rax, %rbx
movq -0x9b0(%rbp), %rdi
cmpq %r15, %rdi
je 0xc024
movq -0x9a0(%rbp), %rsi
jmp 0xc01c
jmp 0xbe2c
movq %rax, %rbx
movq -0x5d0(%rbp), %rdi
cmpq %r12, %rdi
je 0xbdb5
movq -0x5c0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbdb5
movq %rax, %rbx
movq -0x230(%rbp), %rdi
testq %rdi, %rdi
je 0xbdd5
movq -0x220(%rbp), %rsi
subq %rdi, %rsi
callq 0x31d0
jmp 0xbdd5
movq %rax, %rbx
movq -0x5f0(%rbp), %rdi
cmpq %r14, %rdi
je 0xbe2f
movq -0x5e0(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbe2f
movq %rax, %rbx
jmp 0xbe44
movq %rax, %rbx
jmp 0xbe5d
movq %rax, %rbx
jmp 0xbe78
movq %rax, %rbx
movq -0x9f0(%rbp), %rdi
jmp 0xbe83
movq %rax, %rbx
movq -0x9d0(%rbp), %rdi
cmpq %r14, %rdi
je 0xc024
movq -0x9c0(%rbp), %rsi
jmp 0xc01c
movq %rax, %rbx
movq -0x50(%rbp), %rdi
cmpq %r15, %rdi
je 0xbe44
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x31d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xbe5d
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x100(%rbp), %rdi
testq %rdi, %rdi
je 0xbe78
movq -0xf0(%rbp), %rsi
subq %rdi, %rsi
callq 0x31d0
leaq -0xc0(%rbp), %r14
movq -0x10(%r14), %rdi
cmpq %r14, %rdi
je 0xc024
movq (%r14), %rsi
jmp 0xc01c
jmp 0xbf19
movq %rax, %rbx
movq -0x1b8(%rbp), %rdi
leaq -0x1a8(%rbp), %rax
cmpq %rax, %rdi
je 0xbf5c
movq -0x1a8(%rbp), %rsi
jmp 0xbf54
jmp 0xbf9b
jmp 0xbf19
movq %rax, %rbx
movq -0x178(%rbp), %rdi
leaq -0x168(%rbp), %rax
cmpq %rax, %rdi
je 0xbef0
movq -0x168(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbef0
movq %rax, %rbx
movq -0x138(%rbp), %rdi
leaq -0x128(%rbp), %rax
cmpq %rax, %rdi
je 0xbf21
movq -0x128(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbf21
movq %rax, %rbx
jmp 0xbf43
movq %rax, %rbx
jmp 0xbf5c
movq %rax, %rbx
movq -0x158(%rbp), %rdi
leaq -0x148(%rbp), %rax
cmpq %rax, %rdi
je 0xbf43
movq -0x148(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0xbf5c
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0xd0(%rbp), %rdi
leaq -0xc0(%rbp), %rax
cmpq %rax, %rdi
je 0xc002
movq -0xc0(%rbp), %rsi
jmp 0xbffa
movq %rax, %rbx
movq -0x198(%rbp), %rdi
leaq -0x188(%rbp), %rax
cmpq %rax, %rdi
je 0xbf5c
movq -0x188(%rbp), %rsi
jmp 0xbf54
movq %rax, %rbx
jmp 0xc002
movq %rax, %rbx
movq -0x1d8(%rbp), %rdi
leaq -0x1c8(%rbp), %rax
cmpq %rax, %rdi
je 0xbfca
movq -0x1c8(%rbp), %rsi
incq %rsi
callq 0x31d0
jmp 0xbfca
movq %rax, %rbx
movq -0x1f8(%rbp), %rdi
leaq -0x1e8(%rbp), %rax
cmpq %rax, %rdi
je 0xc002
movq -0x1e8(%rbp), %rsi
jmp 0xbffa
movq %rax, %rbx
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0xc002
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x31d0
movq -0x78(%rbp), %rax
movq (%rax), %rdi
cmpq -0x110(%rbp), %rdi
je 0xc024
movq -0x110(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x31d0
movq %rbx, %rdi
callq 0x3320