// File: CobaltXII[P]cxcc/./compiler/compiler.hpp
// Function: compiler_t::compile_expression(expression_t*, symbol_table_t&)
void compile_expression(expression_t* expression, symbol_table_t& symbols) {
		if (expression->type == et_integer_literal) {
			emit("    movq    $%s, %%rax\n", expression->integer_literal.c_str());
		} else if (expression->type == et_string_literal) {
			emit("    leaq    S%ld(%%rip), %%rax\n", expression->string_label);
		} else if (expression->type == et_character_literal) {
			emit("    movq    $%u, %%rax\n", expression->character_literal[0]);
		} else if (expression->type == et_identifier) {
			emit("    movq    %ld(%%rbp), %%rax\n", symbols.fetch(expression->identifier).offset);
		} else if (expression->type == et_function_call) {
			function_call_expression_t expr = expression->function_call;
			if (expr.function == "sizeof") {
				compile_expression(expr.arguments[0], symbols);
				if (expr.arguments[0]->type == et_string_literal) {
					emit("    movq    $%lu, %%rax\n", expr.arguments[0]->string_literal.size() * 8 + 8);
				} else {
					emit("    movq    $8, %%rax\n");
				}
			} else {
				const char* registers[6] = {"%rdi", "%rsi", "%rdx", "%rcx", "%r8", "%r9"};
				if (expr.arguments.size() <= 6) {
					for (int i = 0; i < expr.arguments.size(); i++) {
						compile_expression(expr.arguments[i], symbols);
						emit("    pushq   %%rax\n");
					}
					for (int i = 0; i < expr.arguments.size(); i++) {
						emit("    popq    %s\n", registers[expr.arguments.size() - 1 - i]);
					}
					#ifdef __APPLE__
					emit("    callq   _%s\n", expr.function.c_str());
					#else
					emit("    callq   %s\n", expr.function.c_str());
					#endif
				} else {
					for (int i = 0; i < 6; i++) {
						compile_expression(expr.arguments[0], symbols);
						emit("    pushq   %%rax\n");
					}
					for (int i = 0; i < 6; i++) {
						emit("    popq    %s\n", registers[5 - i]);
						expr.arguments.erase(expr.arguments.begin());
					}
					for (int i = expr.arguments.size() - 1; i >= 0; i--) {
						compile_expression(expr.arguments[i], symbols);
						emit("    pushq   %%rax\n");
					}
					#ifdef __APPLE__
					emit("    callq   _%s\n", expr.function.c_str());
					#else
					emit("    callq   %s\n", expr.function.c_str());
					#endif
					emit("    addq    $%ld, %%rsp\n", expr.arguments.size() * 8);
				}
			}
		} else if (expression->type == et_binary) {
			binary_expression_t expr = expression->binary;
			if (expr.binary_operator == bi_addition) {
				if (expr.left_operand->return_type.pointer_depth > 0 ||
					expr.right_operand->return_type.pointer_depth > 0)
				{
					compile_expression(expr.left_operand, symbols);
					if (expr.left_operand->return_type.pointer_depth == 0) {
						emit("    salq    $3, %%rax\n");
					}
					emit("    pushq   %%rax\n");
					compile_expression(expr.right_operand, symbols);
					if (expr.right_operand->return_type.pointer_depth == 0) {
						emit("    salq    $3, %%rax\n");
					}
					emit("    popq    %%rcx\n");
					emit("    addq    %%rcx, %%rax\n");
				} else {
					compile_expression(expr.left_operand, symbols);
					emit("    pushq   %%rax\n");
					compile_expression(expr.right_operand, symbols);
					emit("    popq    %%rcx\n");
					emit("    addq    %%rcx, %%rax\n");
				}
			} else if (expr.binary_operator == bi_subtraction) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    subq    %%rcx, %%rax\n");
			} else if (expr.binary_operator == bi_multiplication) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    imulq   %%rcx, %%rax\n");
			} else if (expr.binary_operator == bi_division) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cqto\n");
				emit("    idivq   %%rcx\n");
			} else if (expr.binary_operator == bi_modulo) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cqto\n");
				emit("    idivq   %%rcx\n");
				emit("    movq    %%rdx, %%rax\n");
			} else if (expr.binary_operator == bi_assignment) {
				if (expr.left_operand->type == et_identifier) {
					compile_expression(expr.right_operand, symbols);
					emit("    movq    %%rax, %ld(%%rbp)\n", symbols.fetch(expr.left_operand->identifier).offset);
				} else {
					compile_expression(expr.right_operand, symbols);
					emit("    pushq   %%rax\n");
					compile_expression(expr.left_operand->unary.operand, symbols);
					emit("    popq    %%rcx\n");
					emit("    movq    %%rcx, (%%rax)\n");
					emit("    movq    (%%rax), %%rax\n");
				}
			} else if (expr.binary_operator == bi_logical_and) {
				long l0 = label++;
				long l1 = label++;
				compile_expression(expr.left_operand, symbols);
				emit("    cmpq    $0, %%rax\n");
				emit("    jne     L%ld\n", l0);
				emit("    jmp     L%ld\n", l1);
				emit("L%ld:\n", l0);
				compile_expression(expr.right_operand, symbols);
				emit("    cmpq    $0, %%rax\n");
				emit("    movq    $0, %%rax\n");
				emit("    setne   %%al\n");
				emit("L%ld:\n", l1);
			} else if (expr.binary_operator == bi_logical_or) {
				long l0 = label++;
				long l1 = label++;
				compile_expression(expr.left_operand, symbols);
				emit("    cmpq    $0, %%rax\n");
				emit("    je      L%ld\n", l0);
				emit("    movq    $1, %%rax\n");
				emit("    jmp     L%ld\n", l1);
				emit("L%ld:\n", l0);
				compile_expression(expr.right_operand, symbols);
				emit("    cmpq    $0, %%rax\n");
				emit("    movq    $0, %%rax\n");
				emit("    setne   %%al\n");
				emit("L%ld:\n", l1);
			} else if (expr.binary_operator == bi_relational_equal) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    sete    %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_relational_non_equal) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    setne   %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_relational_greater_than) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    setg    %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_relational_lesser_than) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    setl    %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_relational_greater_than_or_equal_to) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    setge   %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_relational_lesser_than_or_equal_to) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    cmpq    %%rcx, %%rax\n");
				emit("    setle   %%al\n");
				emit("    movzbq  %%al, %%rax\n");
			} else if (expr.binary_operator == bi_binary_and) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    andq    %%rcx, %%rax\n");
			} else if (expr.binary_operator == bi_binary_or) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    orq    %%rcx, %%rax\n");
			} else if (expr.binary_operator == bi_binary_xor) {
				compile_expression(expr.left_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.right_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    xorq    %%rcx, %%rax\n");
			} else if (expr.binary_operator == bi_binary_left_shift) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    salq    %%cl, %%rax\n");
			} else if (expr.binary_operator == bi_binary_right_shift) {
				compile_expression(expr.right_operand, symbols);
				emit("    pushq   %%rax\n");
				compile_expression(expr.left_operand, symbols);
				emit("    popq    %%rcx\n");
				emit("    sarq    %%cl, %%rax\n");
			}
		} else if (expression->type == et_unary) {
			unary_expression_t expr = expression->unary;
			if (expr.unary_operator == un_value_of) {
				compile_expression(expr.operand, symbols);
				emit("    movq    (%%rax), %%rax\n");
			} else if (expr.unary_operator == un_arithmetic_negative) {
				compile_expression(expr.operand, symbols);
				emit("    negq    %%rax\n");
			} else if (expr.unary_operator == un_address_of) {
				emit("    leaq    %ld(%%rbp), %%rax\n", symbols.fetch(expr.operand->identifier).offset);
			} else if (expr.unary_operator == un_logical_not) {
				compile_expression(expr.operand, symbols);
				emit("    cmpq    $0, %%rax\n");
				emit("    movq    $0, %%rax\n");
				emit("    sete    %%al\n");
			} else if (expr.unary_operator == un_binary_not) {
				compile_expression(expr.operand, symbols);
				emit("    notq    %%rax\n");
			}
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1e0, %rsp            # imm = 0x1E0
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x170(%rbp)
movq -0x10(%rbp), %rax
cmpl $0x0, (%rax)
jne 0x25295
movq -0x10(%rbp), %rdi
addq $0x48, %rdi
callq 0x3120
movq -0x170(%rbp), %rdi
movq %rax, %rdx
leaq 0x3916(%rip), %rsi      # 0x28b9f
movb $0x0, %al
callq 0x245e0
jmp 0x2678f
movq -0x10(%rbp), %rax
cmpl $0x1, (%rax)
jne 0x252c0
movq -0x170(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdx
leaq 0x3903(%rip), %rsi      # 0x28bb7
movb $0x0, %al
callq 0x245e0
jmp 0x2678d
movq -0x10(%rbp), %rax
cmpl $0x2, (%rax)
jne 0x252f7
movq -0x10(%rbp), %rdi
addq $0x68, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x3540
movq -0x170(%rbp), %rdi
movsbl (%rax), %edx
leaq 0x38ec(%rip), %rsi      # 0x28bd7
movb $0x0, %al
callq 0x245e0
jmp 0x2678b
movq -0x10(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x2538e
movq -0x18(%rbp), %rax
movq %rax, -0x188(%rbp)
movq -0x10(%rbp), %rsi
addq $0x88, %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x3130
movq -0x188(%rbp), %rdi
movq -0x180(%rbp), %rsi
callq 0x20800
movq %rax, -0x178(%rbp)
jmp 0x25346
movq -0x170(%rbp), %rdi
movq -0x178(%rbp), %rax
movq 0x48(%rax), %rdx
leaq 0x3890(%rip), %rsi      # 0x28bef
movb $0x0, %al
callq 0x245e0
leaq -0x38(%rbp), %rdi
callq 0x31c0
jmp 0x26789
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x38(%rbp), %rdi
callq 0x31c0
jmp 0x26798
movq -0x10(%rbp), %rax
cmpl $0x5, (%rax)
jne 0x25792
movq -0x10(%rbp), %rsi
addq $0xb8, %rsi
leaq -0x80(%rbp), %rdi
callq 0x21240
leaq -0x80(%rbp), %rdi
leaq 0x32ba(%rip), %rsi      # 0x28674
callq 0xc2b0
testb $0x1, %al
jne 0x253c8
jmp 0x25476
leaq -0x60(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12ef0
movq -0x170(%rbp), %rdi
movq (%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
jmp 0x253ea
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12ef0
movq (%rax), %rax
cmpl $0x1, (%rax)
jne 0x2545c
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12ef0
movq (%rax), %rdi
addq $0x20, %rdi
callq 0x31f0
movq -0x170(%rbp), %rdi
movq %rax, %rdx
shlq $0x3, %rdx
addq $0x8, %rdx
leaq 0x37d5(%rip), %rsi      # 0x28c0e
movb $0x0, %al
callq 0x245e0
jmp 0x25471
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x16c50
jmp 0x26798
movq -0x170(%rbp), %rdi
leaq 0x37bd(%rip), %rsi      # 0x28c27
movb $0x0, %al
callq 0x245e0
jmp 0x25784
leaq -0xb0(%rbp), %rdi
leaq 0xf8ec(%rip), %rsi      # 0x34d70
movl $0x30, %edx
callq 0x3250
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
cmpq $0x6, %rax
ja 0x255c7
movl $0x0, -0xb4(%rbp)
movslq -0xb4(%rbp), %rax
movq %rax, -0x190(%rbp)
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
movq %rax, %rcx
movq -0x190(%rbp), %rax
cmpq %rcx, %rax
jae 0x25524
leaq -0x60(%rbp), %rdi
movslq -0xb4(%rbp), %rsi
callq 0x12ef0
movq -0x170(%rbp), %rdi
movq (%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
jmp 0x254fe
movq -0x170(%rbp), %rdi
leaq 0x3732(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movl -0xb4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb4(%rbp)
jmp 0x254af
movl $0x0, -0xb8(%rbp)
movslq -0xb8(%rbp), %rax
movq %rax, -0x198(%rbp)
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
movq %rax, %rcx
movq -0x198(%rbp), %rax
cmpq %rcx, %rax
jae 0x255a1
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
movq -0x170(%rbp), %rdi
subq $0x1, %rax
movslq -0xb8(%rbp), %rcx
subq %rcx, %rax
movq -0xb0(%rbp,%rax,8), %rdx
leaq 0x36c8(%rip), %rsi      # 0x28c51
movb $0x0, %al
callq 0x245e0
movl -0xb8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xb8(%rbp)
jmp 0x2552e
leaq -0x80(%rbp), %rdi
callq 0x3120
movq -0x170(%rbp), %rdi
movq %rax, %rdx
leaq 0x36a6(%rip), %rsi      # 0x28c61
movb $0x0, %al
callq 0x245e0
jmp 0x25782
movl $0x0, -0xbc(%rbp)
cmpl $0x6, -0xbc(%rbp)
jge 0x25622
leaq -0x60(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x12ef0
movq -0x170(%rbp), %rdi
movq (%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
jmp 0x255fc
movq -0x170(%rbp), %rdi
leaq 0x3634(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movl -0xbc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xbc(%rbp)
jmp 0x255d1
movl $0x0, -0xc0(%rbp)
cmpl $0x6, -0xc0(%rbp)
jge 0x256cd
movq -0x170(%rbp), %rdi
movl -0xc0(%rbp), %ecx
movl $0x5, %eax
subl %ecx, %eax
cltq
movq -0xb0(%rbp,%rax,8), %rdx
leaq 0x35f3(%rip), %rsi      # 0x28c51
xorl %eax, %eax
callq 0x245e0
leaq -0x60(%rbp), %rdi
movq %rdi, -0x1a8(%rbp)
callq 0x12f50
movq %rax, -0xd0(%rbp)
leaq -0xc8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
callq 0x13190
movq -0x1a8(%rbp), %rdi
movq -0xc8(%rbp), %rsi
callq 0x13120
movq %rax, -0x1a0(%rbp)
jmp 0x256ab
movq -0x1a0(%rbp), %rax
movq %rax, -0xd8(%rbp)
movl -0xc0(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc0(%rbp)
jmp 0x2562c
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
subq $0x1, %rax
movl %eax, -0xdc(%rbp)
cmpl $0x0, -0xdc(%rbp)
jl 0x25738
leaq -0x60(%rbp), %rdi
movslq -0xdc(%rbp), %rsi
callq 0x12ef0
movq -0x170(%rbp), %rdi
movq (%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
jmp 0x25712
movq -0x170(%rbp), %rdi
leaq 0x351e(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movl -0xdc(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0xdc(%rbp)
jmp 0x256e4
leaq -0x80(%rbp), %rdi
callq 0x3120
movq -0x170(%rbp), %rdi
movq %rax, %rdx
leaq 0x350f(%rip), %rsi      # 0x28c61
movb $0x0, %al
callq 0x245e0
leaq -0x80(%rbp), %rdi
addq $0x20, %rdi
callq 0x12ed0
movq -0x170(%rbp), %rdi
movq %rax, %rdx
shlq $0x3, %rdx
leaq 0x34f6(%rip), %rsi      # 0x28c71
movb $0x0, %al
callq 0x245e0
jmp 0x25784
leaq -0x80(%rbp), %rdi
callq 0x16c50
jmp 0x26787
movq -0x10(%rbp), %rax
cmpl $0x6, (%rax)
jne 0x2659f
movq -0x10(%rbp), %rax
movq 0xf0(%rax), %rcx
movq %rcx, -0xf8(%rbp)
movq 0xf8(%rax), %rcx
movq %rcx, -0xf0(%rbp)
movq 0x100(%rax), %rax
movq %rax, -0xe8(%rbp)
cmpl $0x0, -0xe8(%rbp)
jne 0x25921
movq -0xf8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jg 0x257fa
movq -0xf0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jle 0x258af
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0xf8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x25834
movq -0x170(%rbp), %rdi
leaq 0x345d(%rip), %rsi      # 0x28c8a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x33fc(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0xf0(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x25883
movq -0x170(%rbp), %rdi
leaq 0x340e(%rip), %rsi      # 0x28c8a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x3410(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x340e(%rip), %rsi      # 0x28cb4
movb $0x0, %al
callq 0x245e0
jmp 0x2591c
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x336a(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x33a1(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x339f(%rip), %rsi      # 0x28cb4
movb $0x0, %al
callq 0x245e0
jmp 0x2659a
cmpl $0x1, -0xe8(%rbp)
jne 0x2599c
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x32ef(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x3326(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x333e(%rip), %rsi      # 0x28cce
movb $0x0, %al
callq 0x245e0
jmp 0x26598
cmpl $0x2, -0xe8(%rbp)
jne 0x25a17
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x3274(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x32ab(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x32dd(%rip), %rsi      # 0x28ce8
movb $0x0, %al
callq 0x245e0
jmp 0x26596
cmpl $0x3, -0xe8(%rbp)
jne 0x25aab
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x31f5(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x322c(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x3278(%rip), %rsi      # 0x28d02
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x326d(%rip), %rsi      # 0x28d0c
movb $0x0, %al
callq 0x245e0
jmp 0x26594
cmpl $0x4, -0xe8(%rbp)
jne 0x25b54
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x3161(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x3198(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x31e4(%rip), %rsi      # 0x28d02
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x31d9(%rip), %rsi      # 0x28d0c
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x31d7(%rip), %rsi      # 0x28d1f
movb $0x0, %al
callq 0x245e0
jmp 0x26592
cmpl $0x5, -0xe8(%rbp)
jne 0x25cac
movq -0xf8(%rbp), %rax
cmpl $0x3, (%rax)
jne 0x25c1e
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x18(%rbp), %rax
movq %rax, -0x1c0(%rbp)
movq -0xf8(%rbp), %rsi
addq $0x88, %rsi
leaq -0x118(%rbp), %rdi
movq %rdi, -0x1b8(%rbp)
callq 0x3130
movq -0x1c0(%rbp), %rdi
movq -0x1b8(%rbp), %rsi
callq 0x20800
movq %rax, -0x1b0(%rbp)
jmp 0x25bd0
movq -0x170(%rbp), %rdi
movq -0x1b0(%rbp), %rax
movq 0x48(%rax), %rdx
leaq 0x2f97(%rip), %rsi      # 0x28b80
movb $0x0, %al
callq 0x245e0
leaq -0x118(%rbp), %rdi
callq 0x31c0
jmp 0x25ca7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x118(%rbp), %rdi
callq 0x31c0
jmp 0x26798
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2ffb(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rax
movq 0x108(%rax), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x302b(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x30ae(%rip), %rsi      # 0x28d39
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x30b5(%rip), %rsi      # 0x28d55
movb $0x0, %al
callq 0x245e0
jmp 0x26590
cmpl $0xb, -0xe8(%rbp)
jne 0x25ddc
movq -0x170(%rbp), %rdi
movq 0x20(%rdi), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rdi)
movq %rax, -0x120(%rbp)
movq 0x20(%rdi), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rdi)
movq %rax, -0x128(%rbp)
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2dfd(%rip), %rsi      # 0x28b07
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x120(%rbp), %rdx
leaq 0x304b(%rip), %rsi      # 0x28d71
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x128(%rbp), %rdx
leaq 0x2df5(%rip), %rsi      # 0x28b37
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x120(%rbp), %rdx
leaq 0x2dd2(%rip), %rsi      # 0x28b30
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2d7d(%rip), %rsi      # 0x28b07
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2fe4(%rip), %rsi      # 0x28d83
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2fe6(%rip), %rsi      # 0x28d9a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x128(%rbp), %rdx
leaq 0x2d60(%rip), %rsi      # 0x28b30
movb $0x0, %al
callq 0x245e0
jmp 0x2658e
cmpl $0xc, -0xe8(%rbp)
jne 0x25f21
movq -0x170(%rbp), %rdi
movq 0x20(%rdi), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rdi)
movq %rax, -0x130(%rbp)
movq 0x20(%rdi), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0x20(%rdi)
movq %rax, -0x138(%rbp)
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2ccd(%rip), %rsi      # 0x28b07
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0x2cc8(%rip), %rsi      # 0x28b1e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2f41(%rip), %rsi      # 0x28dac
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x138(%rbp), %rdx
leaq 0x2cb0(%rip), %rsi      # 0x28b37
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0x2c8d(%rip), %rsi      # 0x28b30
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2c38(%rip), %rsi      # 0x28b07
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2e9f(%rip), %rsi      # 0x28d83
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2ea1(%rip), %rsi      # 0x28d9a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0x138(%rbp), %rdx
leaq 0x2c1b(%rip), %rsi      # 0x28b30
movb $0x0, %al
callq 0x245e0
jmp 0x2658c
cmpl $0xd, -0xe8(%rbp)
jne 0x25fca
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2ceb(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2d22(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2e2f(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2e34(%rip), %rsi      # 0x28ddd
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2e31(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x2658a
cmpl $0xe, -0xe8(%rbp)
jne 0x26073
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2c42(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2c79(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2d86(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2d48(%rip), %rsi      # 0x28d9a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2d88(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x26588
cmpl $0xf, -0xe8(%rbp)
jne 0x2611c
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2b99(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2bd0(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2cdd(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2d0d(%rip), %rsi      # 0x28e08
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2cdf(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x26586
cmpl $0x10, -0xe8(%rbp)
jne 0x261c5
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2af0(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2b27(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2c34(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2c76(%rip), %rsi      # 0x28e1a
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2c36(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x26584
cmpl $0x11, -0xe8(%rbp)
jne 0x2626e
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2a47(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2a7e(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2b8b(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2bdf(%rip), %rsi      # 0x28e2c
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2b8d(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x26582
cmpl $0x12, -0xe8(%rbp)
jne 0x26317
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x299e(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x29d5(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2ae2(%rip), %rsi      # 0x28dc3
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2b48(%rip), %rsi      # 0x28e3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2ae4(%rip), %rsi      # 0x28def
movb $0x0, %al
callq 0x245e0
jmp 0x26580
cmpl $0x13, -0xe8(%rbp)
jne 0x26392
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x28f9(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2930(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2aca(%rip), %rsi      # 0x28e50
movb $0x0, %al
callq 0x245e0
jmp 0x2657e
cmpl $0x14, -0xe8(%rbp)
jne 0x2640d
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x287e(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x28b5(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2a69(%rip), %rsi      # 0x28e6a
movb $0x0, %al
callq 0x245e0
jmp 0x2657c
cmpl $0x15, -0xe8(%rbp)
jne 0x26488
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2803(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x283a(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2a07(%rip), %rsi      # 0x28e83
movb $0x0, %al
callq 0x245e0
jmp 0x2657a
cmpl $0x19, -0xe8(%rbp)
jne 0x26500
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2788(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x27bf(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x29a6(%rip), %rsi      # 0x28e9d
movb $0x0, %al
callq 0x245e0
jmp 0x26578
cmpl $0x1a, -0xe8(%rbp)
jne 0x26576
movq -0x170(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2710(%rip), %rsi      # 0x28c3e
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
movq -0xf8(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x2747(%rip), %rsi      # 0x28ca1
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x2947(%rip), %rsi      # 0x28eb6
movb $0x0, %al
callq 0x245e0
jmp 0x26578
jmp 0x2657a
jmp 0x2657c
jmp 0x2657e
jmp 0x26580
jmp 0x26582
jmp 0x26584
jmp 0x26586
jmp 0x26588
jmp 0x2658a
jmp 0x2658c
jmp 0x2658e
jmp 0x26590
jmp 0x26592
jmp 0x26594
jmp 0x26596
jmp 0x26598
jmp 0x2659a
jmp 0x26785
movq -0x10(%rbp), %rax
cmpl $0x7, (%rax)
jne 0x26783
movq -0x10(%rbp), %rax
movq 0x108(%rax), %rcx
movq %rcx, -0x148(%rbp)
movq 0x110(%rax), %rax
movq %rax, -0x140(%rbp)
cmpl $0x0, -0x140(%rbp)
jne 0x26606
movq -0x170(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x275b(%rip), %rsi      # 0x28d55
movb $0x0, %al
callq 0x245e0
jmp 0x26781
cmpl $0x2, -0x140(%rbp)
jne 0x26640
movq -0x170(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x289b(%rip), %rsi      # 0x28ecf
movb $0x0, %al
callq 0x245e0
jmp 0x2677f
cmpl $0x3, -0x140(%rbp)
jne 0x266e3
movq -0x18(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq -0x148(%rbp), %rsi
addq $0x88, %rsi
leaq -0x168(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x3130
movq -0x1d8(%rbp), %rdi
movq -0x1d0(%rbp), %rsi
callq 0x20800
movq %rax, -0x1c8(%rbp)
jmp 0x26695
movq -0x170(%rbp), %rdi
movq -0x1c8(%rbp), %rax
movq 0x48(%rax), %rdx
leaq 0x2834(%rip), %rsi      # 0x28ee2
movb $0x0, %al
callq 0x245e0
leaq -0x168(%rbp), %rdi
callq 0x31c0
jmp 0x2677d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x168(%rbp), %rdi
callq 0x31c0
jmp 0x26798
cmpl $0x4, -0x140(%rbp)
jne 0x26744
movq -0x170(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x23f6(%rip), %rsi      # 0x28b07
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x265d(%rip), %rsi      # 0x28d83
movb $0x0, %al
callq 0x245e0
movq -0x170(%rbp), %rdi
leaq 0x26a2(%rip), %rsi      # 0x28ddd
movb $0x0, %al
callq 0x245e0
jmp 0x2677b
cmpl $0x5, -0x140(%rbp)
jne 0x26779
movq -0x170(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x25240
movq -0x170(%rbp), %rdi
leaq 0x278f(%rip), %rsi      # 0x28f01
movb $0x0, %al
callq 0x245e0
jmp 0x2677b
jmp 0x2677d
jmp 0x2677f
jmp 0x26781
jmp 0x26783
jmp 0x26785
jmp 0x26787
jmp 0x26789
jmp 0x2678b
jmp 0x2678d
jmp 0x2678f
addq $0x1e0, %rsp            # imm = 0x1E0
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x34c0
nopw %cs:(%rax,%rax)
nopl (%rax,%rax)