// File: /workspace/github_c_makefile_star2_O2/been-jamming[P]MinimalCC/compile.c
// Function: compile_statement
void compile_statement(char **c, FILE *output_file){
	value expression_output;
	unsigned int label_num0;
	unsigned int label_num1;
	unsigned int label_num2;
	unsigned int label_num3;
	int prev_break_label;
	int prev_continue_label;
	int prev_loop_variables_size;

	skip_whitespace(c);
	if(!strncmp(*c, "if", 2) && !alphanumeric((*c)[2])){
		*c += 2;
		skip_whitespace(c);
		if(**c != '('){
			snprintf(error_message, sizeof(error_message), "Expected '('");
			do_error(1);;
		}
		++*c;
		compile_root_expression(&expression_output, c, 1, 0, output_file);
		cast(&expression_output, INT_TYPE, 0, output_file);
		reset_stack_pos(&expression_output, output_file);
		label_num0 = num_labels;
		num_labels++;
		if(expression_output.data.type == data_register){
			fprintf(output_file, "beq $s%d, $zero, __L%d\n", expression_output.data.reg, label_num0);
		} else if(expression_output.data.type == data_stack){
			fprintf(output_file, "beq $t0, $zero, __L%d\n", label_num0);
		}
		deallocate(expression_output.data);
		skip_whitespace(c);
		if(**c != ')'){
			snprintf(error_message, sizeof(error_message), "Expected ')'");
			do_error(1);
		}
		++*c;
		skip_whitespace(c);
		compile_statement(c, output_file);
		skip_whitespace(c);
		if(!strncmp(*c, "else", 2) && !alphanumeric((*c)[4])){
			*c += 4;
			label_num1 = num_labels;
			num_labels++;
			fprintf(output_file, "j __L%d\n", label_num1);
			fprintf(output_file, "\n__L%d:\n", label_num0);
			skip_whitespace(c);
			compile_statement(c, output_file);
			fprintf(output_file, "\n__L%d:\n", label_num1);
		} else {
			fprintf(output_file, "\n__L%d:\n", label_num0);
		}
	} else if(!strncmp(*c, "while", 5) && !alphanumeric((*c)[5])){
		*c += 5;
		skip_whitespace(c);
		if(**c != '('){
			snprintf(error_message, sizeof(error_message), "Expected '('");
			do_error(1);
		}
		++*c;
		label_num0 = num_labels;
		label_num1 = num_labels + 1;
		num_labels += 2;

		prev_break_label = break_label;
		prev_continue_label = continue_label;
		prev_loop_variables_size = loop_variables_size;
		break_label = label_num1;
		continue_label = label_num0;
		loop_variables_size = variables_size;

		fprintf(output_file, "\n__L%d:\n", label_num0);
		compile_root_expression(&expression_output, c, 1, 0, output_file);
		cast(&expression_output, INT_TYPE, 0, output_file);
		reset_stack_pos(&expression_output, output_file);
		if(expression_output.data.type == data_register){
			fprintf(output_file, "beq $s%d, $zero, __L%d\n", expression_output.data.reg, label_num1);
		} else if(expression_output.data.type == data_stack){
			fprintf(output_file, "beq $t0, $zero, __L%d\n", label_num1);
		}
		deallocate(expression_output.data);
		skip_whitespace(c);
		if(**c != ')'){
			snprintf(error_message, sizeof(error_message), "Expected ')'");
			do_error(1);
		}
		++*c;
		skip_whitespace(c);
		compile_statement(c, output_file);
		fprintf(output_file, "j __L%d\n", label_num0);
		fprintf(output_file, "\n__L%d:\n", label_num1);

		loop_variables_size = prev_loop_variables_size;
		break_label = prev_break_label;
		continue_label = prev_continue_label;
	} else if(!strncmp(*c, "for", 3) && !alphanumeric((*c)[3])){
		*c += 3;
		skip_whitespace(c);
		if(**c != '('){
			snprintf(error_message, sizeof(error_message), "Expected '('");
			do_error(1);
		}
		++*c;
		label_num0 = num_labels;
		label_num1 = num_labels + 1;
		label_num2 = num_labels + 2;
		label_num3 = num_labels + 3;
		num_labels += 4;

		prev_break_label = break_label;
		prev_continue_label = continue_label;
		prev_loop_variables_size = loop_variables_size;
		break_label = label_num1;
		continue_label = label_num3;
		loop_variables_size = variables_size;

		skip_whitespace(c);
		if(**c != ';'){
			compile_root_expression(&expression_output, c, 1, 0, output_file);
			reset_stack_pos(&expression_output, output_file);
			deallocate(expression_output.data);
			skip_whitespace(c);
			if(**c != ';'){
				snprintf(error_message, sizeof(error_message), "Expected ';'");
				do_error(1);
			}
		}
		++*c;
		fprintf(output_file, "\n__L%d:\n", label_num0);
		skip_whitespace(c);
		if(**c != ';'){
			compile_root_expression(&expression_output, c, 1, 0, output_file);
			cast(&expression_output, INT_TYPE, 0, output_file);
			reset_stack_pos(&expression_output, output_file);
			if(expression_output.data.type == data_register){
				fprintf(output_file, "beq $s%d, $zero, __L%d\n", expression_output.data.reg, label_num1);
			} else if(expression_output.data.type == data_stack){
				fprintf(output_file, "beq $t0, $zero, __L%d\n", label_num1);
			}
			deallocate(expression_output.data);
			skip_whitespace(c);
			if(**c != ';'){
				snprintf(error_message, sizeof(error_message), "Expected ';'");
				do_error(1);
			}
		}
		++*c;
		fprintf(output_file, "j __L%d\n\n__L%d:\n", label_num2, label_num3);
		skip_whitespace(c);
		if(**c != ')'){
			compile_root_expression(&expression_output, c, 1, 0, output_file);
			reset_stack_pos(&expression_output, output_file);
			deallocate(expression_output.data);
			skip_whitespace(c);
			if(**c != ')'){
				snprintf(error_message, sizeof(error_message), "Expected '('");
				do_error(1);
			}
		}
		++*c;
		fprintf(output_file, "j __L%d\n\n__L%d:\n", label_num0, label_num2);
		skip_whitespace(c);
		compile_statement(c, output_file);
		fprintf(output_file, "j __L%d\n\n__L%d:\n", label_num3, label_num1);

		loop_variables_size = prev_loop_variables_size;
		break_label = prev_break_label;
		continue_label = prev_continue_label;
	} else if(!strncmp(*c, "return", 6) && !alphanumeric((*c)[6])){
		*c += 6;
		skip_whitespace(c);
		if(types_equal(&return_type, &VOID_TYPE)){
			if(**c != ';'){
				snprintf(error_message, sizeof(error_message), "Expected ';' for return in void function");
				do_error(1);
			}
			++*c;
		} else {
			compile_root_expression(&expression_output, c, 1, 0, output_file);
			if(**c != ';'){
				snprintf(error_message, sizeof(error_message), "Expected ';'");
				do_error(1);
			}
			++*c;
			cast(&expression_output, return_type, 1, output_file);
			reset_stack_pos(&expression_output, output_file);
			if(expression_output.data.type == data_register){
				fprintf(output_file, "sw $s%d, %d($sp)\n", expression_output.data.reg, variables_size);
			} else if(expression_output.data.type == data_stack){
				fprintf(output_file, "sw $t0, %d($sp)\n", variables_size);
			}
			deallocate(expression_output.data);
		}
		fprintf(output_file, "addi $sp, $sp, %d\n", variables_size - num_args*4);
		fprintf(output_file, "lw $ra, %d($sp)\n", 4 + num_args*4);
		fprintf(output_file, "jr $ra\n");
	} else if(!strncmp(*c, "break", 5) && !alphanumeric((*c)[5])){
		*c += 5;
		skip_whitespace(c);
		if(**c != ';'){
			snprintf(error_message, sizeof(error_message), "Expected ';' after break");
			do_error(1);
		}
		if(break_label < 0){
			snprintf(error_message, sizeof(error_message), "No loop to break out of");
			do_error(1);
		}
		if(variables_size != loop_variables_size)
			fprintf(output_file, "addi $sp, $sp, %d\n", variables_size - loop_variables_size);
		fprintf(output_file, "j __L%d\n", break_label);
	} else if(!strncmp(*c, "continue", 8) && !alphanumeric((*c)[8])){
		*c += 8;
		skip_whitespace(c);
		if(**c != ';'){
			snprintf(error_message, sizeof(error_message), "Expected ';' after continue");
			do_error(1);
		}
		if(continue_label < 0){
			snprintf(error_message, sizeof(error_message), "No loop to continue in");
			do_error(1);
		}
		if(variables_size != loop_variables_size)
			fprintf(output_file, "addi $sp, $sp, %d\n", variables_size - loop_variables_size);
		fprintf(output_file, "j __L%d\n", continue_label);
	} else if(**c == ';'){
		//Empty statement, so pass
		++*c;
	} else if(**c == '{'){
		++*c;
		compile_block(c, 0, output_file);
		if(**c != '}'){
			snprintf(error_message, sizeof(error_message), "Expected '}'");
			do_error(1);
		}
		++*c;
	} else {
		compile_root_expression(&expression_output, c, 1, 0, output_file);
		reset_stack_pos(&expression_output, output_file);
		deallocate(expression_output.data);
		if(**c == ';'){
			++*c;
		} else {
			snprintf(error_message, sizeof(error_message), "Expected ';'");
			do_error(1);
		}
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xa8, %rsp
movq %rsi, %rbx
movq %rdi, %r14
callq 0x7549
movq (%r14), %r15
cmpb $0x69, (%r15)
jne 0x6062
cmpb $0x66, 0x1(%r15)
jne 0x6062
movsbl 0x2(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x630b
leaq 0x2cfa(%rip), %rsi      # 0x8d63
pushq $0x5
popq %rdx
movq %r15, %rdi
callq 0x1040
testl %eax, %eax
jne 0x608d
movsbl 0x5(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x61c0
cmpb $0x66, (%r15)
jne 0x60b6
cmpb $0x6f, 0x1(%r15)
jne 0x60b6
cmpb $0x72, 0x2(%r15)
jne 0x60b6
movsbl 0x3(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x65c4
leaq 0x2cbd(%rip), %rsi      # 0x8d7a
pushq $0x6
popq %rdx
movq %r15, %rdi
callq 0x1040
testl %eax, %eax
jne 0x60e1
movsbl 0x6(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x62ca
leaq 0x2cd5(%rip), %rsi      # 0x8dbd
pushq $0x5
popq %rdx
movq %r15, %rdi
callq 0x1040
testl %eax, %eax
jne 0x610c
movsbl 0x5(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x63ca
leaq 0x2cdb(%rip), %rsi      # 0x8dee
pushq $0x8
popq %rdx
movq %r15, %rdi
callq 0x1040
testl %eax, %eax
jne 0x6137
movsbl 0x8(%r15), %edi
callq 0x71d9
movq (%r14), %r15
testb %al, %al
je 0x641f
movzbl (%r15), %eax
cmpl $0x7b, %eax
je 0x6150
cmpl $0x3b, %eax
jne 0x617a
incq %r15
movq %r15, (%r14)
jmp 0x69cb
incq %r15
movq %r15, (%r14)
movq %r14, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x5e5f
movq (%r14), %rax
cmpb $0x7d, (%rax)
je 0x61b5
movabsq $0x277d2720646574, %rax # imm = 0x277D2720646574
jmp 0x69ff
leaq 0x50(%rsp), %r15
pushq $0x1
popq %rdx
movq %r15, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
movq %r15, %rdi
movq %rbx, %rsi
callq 0x563c
movq (%r15), %rdi
movl 0x8(%r15), %esi
callq 0x1343
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x69e9
incq %rax
movq %rax, (%r14)
jmp 0x69cb
addq $0x5, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x28, (%rax)
jne 0x69dd
incq %rax
movq %rax, (%r14)
leaq 0x6088(%rip), %rax      # 0xc270
movl (%rax), %r15d
leal 0x1(%r15), %ebp
leal 0x2(%r15), %ecx
movl %ecx, (%rax)
movl 0x5f7d(%rip), %eax      # 0xc178
movl %eax, 0x40(%rsp)
movl 0x5f77(%rip), %eax      # 0xc17c
movl %eax, 0x44(%rsp)
movl 0x6438(%rip), %r13d     # 0xc648
movl %ebp, 0x5f62(%rip)      # 0xc178
movl %r15d, 0x5f5f(%rip)     # 0xc17c
leaq 0x6024(%rip), %rax      # 0xc248
movl (%rax), %eax
movl %eax, 0x641c(%rip)      # 0xc648
leaq 0x2b3e(%rip), %rsi      # 0x8d71
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x1100
leaq 0x50(%rsp), %r12
pushq $0x1
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
leaq 0x5f21(%rip), %rax      # 0xc180
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movups 0x30(%rax), %xmm3
movups %xmm3, 0x30(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r12, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x312b
movq %r12, %rdi
movq %rbx, %rsi
callq 0x563c
movl (%r12), %eax
cmpl $0x1, %eax
je 0x6494
testl %eax, %eax
jne 0x64a7
movl 0x54(%rsp), %edx
leaq 0x28dc(%rip), %rsi      # 0x8b95
movq %rbx, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x1100
jmp 0x64a7
addq $0x6, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
leaq 0x6328(%rip), %rdi      # 0xc608
leaq 0x5ed9(%rip), %rsi      # 0xc1c0
callq 0x7653
testb %al, %al
je 0x6519
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x6a8c
incq %rax
movq %rax, (%r14)
jmp 0x67fd
addq $0x2, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x28, (%rax)
jne 0x69dd
incq %rax
movq %rax, (%r14)
leaq 0x50(%rsp), %r12
pushq $0x1
popq %rdx
movq %r12, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
leaq 0x5e35(%rip), %rax      # 0xc180
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movups 0x30(%rax), %xmm3
movups %xmm3, 0x30(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r12, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x312b
movq %r12, %rdi
movq %rbx, %rsi
callq 0x563c
leaq 0x5ee4(%rip), %r13      # 0xc270
movl (%r13), %r15d
leal 0x1(%r15), %eax
movl %eax, (%r13)
movl (%r12), %eax
cmpl $0x1, %eax
je 0x6746
testl %eax, %eax
jne 0x675a
movl 0x54(%rsp), %edx
leaq 0x27dd(%rip), %rsi      # 0x8b95
movq %rbx, %rdi
movl %r15d, %ecx
xorl %eax, %eax
callq 0x1100
jmp 0x675a
addq $0x5, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x6a1c
movl 0x5d8d(%rip), %edx      # 0xc178
testl %edx, %edx
js 0x6a33
leaq 0x5e4e(%rip), %rax      # 0xc248
movl (%rax), %eax
subl 0x6246(%rip), %eax      # 0xc648
je 0x6472
leaq 0x23b9(%rip), %rsi      # 0x87c4
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0x1100
movl 0x5d5b(%rip), %edx      # 0xc178
jmp 0x6472
addq $0x8, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x6a54
movl 0x5d3c(%rip), %edx      # 0xc17c
testl %edx, %edx
js 0x6a6b
leaq 0x5df9(%rip), %rax      # 0xc248
movl (%rax), %eax
subl 0x61f1(%rip), %eax      # 0xc648
je 0x6472
leaq 0x2364(%rip), %rsi      # 0x87c4
movq %rbx, %rdi
movl %eax, %edx
xorl %eax, %eax
callq 0x1100
movl 0x5d0a(%rip), %edx      # 0xc17c
leaq 0x28e1(%rip), %rsi      # 0x8d5a
movq %rbx, %rdi
xorl %eax, %eax
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x1100
leaq 0x2712(%rip), %rsi      # 0x8bad
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x1100
movq 0x50(%rsp), %rdi
movl 0x58(%rsp), %esi
callq 0x1343
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x29, (%rax)
jne 0x69f5
incq %rax
movq %rax, (%r14)
movq %r14, %rdi
callq 0x7549
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6021
leaq 0x2871(%rip), %rsi      # 0x8d5a
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x1100
leaq 0x2874(%rip), %rsi      # 0x8d71
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x1100
movl %r13d, 0x6138(%rip)     # 0xc648
movl 0x40(%rsp), %eax
jmp 0x69bb
leaq 0x50(%rsp), %rdi
pushq $0x1
popq %rdx
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x69e9
incq %rax
movq %rax, (%r14)
movups 0x60f1(%rip), %xmm0     # 0xc638
movups %xmm0, 0x30(%rsp)
movups 0x60d5(%rip), %xmm0     # 0xc628
movups %xmm0, 0x20(%rsp)
movups 0x60b9(%rip), %xmm0     # 0xc618
movups %xmm0, 0x10(%rsp)
movups 0x609d(%rip), %xmm0     # 0xc608
movups %xmm0, (%rsp)
leaq 0x50(%rsp), %r14
pushq $0x1
popq %rsi
movq %r14, %rdi
movq %rbx, %rdx
callq 0x312b
movq %r14, %rdi
movq %rbx, %rsi
callq 0x563c
movl (%r14), %eax
cmpl $0x1, %eax
je 0x67d5
testl %eax, %eax
jne 0x67ef
movl 0x54(%rsp), %edx
leaq 0x5c9c(%rip), %rax      # 0xc248
movl (%rax), %ecx
leaq 0x1a4f(%rip), %rsi      # 0x8004
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1100
jmp 0x67ef
addq $0x3, %r15
movq %r15, (%r14)
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x28, (%rax)
jne 0x69dd
incq %rax
movq %rax, (%r14)
leaq 0x5c84(%rip), %rax      # 0xc270
movl (%rax), %r12d
leal 0x1(%r12), %ebp
leal 0x3(%r12), %edx
leal 0x4(%r12), %ecx
movl %ecx, (%rax)
movl 0x5b71(%rip), %r15d     # 0xc178
movl 0x5b6f(%rip), %eax      # 0xc17c
movl %eax, 0x44(%rsp)
movl 0x6031(%rip), %eax      # 0xc648
movl %eax, 0x4c(%rsp)
movl %ebp, 0x5b57(%rip)      # 0xc178
movl %edx, 0x40(%rsp)
movl %edx, 0x5b51(%rip)      # 0xc17c
leaq 0x5c16(%rip), %rax      # 0xc248
movl (%rax), %eax
movl %eax, 0x600e(%rip)      # 0xc648
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
je 0x668e
leaq 0x50(%rsp), %r13
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
movq %r13, %rdi
movq %rbx, %rsi
callq 0x563c
movq (%r13), %rdi
movl 0x8(%r13), %esi
callq 0x1343
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x69e9
incq %rax
movq %rax, (%r14)
leaq 0x26d6(%rip), %rsi      # 0x8d71
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x1100
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
je 0x68ec
leaq 0x50(%rsp), %r13
pushq $0x1
popq %rdx
movq %r13, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
leaq 0x5aa5(%rip), %rax      # 0xc180
movups (%rax), %xmm0
movups 0x10(%rax), %xmm1
movups 0x20(%rax), %xmm2
movups 0x30(%rax), %xmm3
movups %xmm3, 0x30(%rsp)
movups %xmm2, 0x20(%rsp)
movups %xmm1, 0x10(%rsp)
movups %xmm0, (%rsp)
movq %r13, %rdi
xorl %esi, %esi
movq %rbx, %rdx
callq 0x312b
movq %r13, %rdi
movq %rbx, %rsi
callq 0x563c
movl (%r13), %eax
cmpl $0x1, %eax
je 0x68b7
testl %eax, %eax
jne 0x68ca
movl 0x54(%rsp), %edx
leaq 0x2460(%rip), %rsi      # 0x8b95
movq %rbx, %rdi
movl %ebp, %ecx
xorl %eax, %eax
callq 0x1100
jmp 0x68ca
leaq 0x2460(%rip), %rsi      # 0x8bad
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x1100
movq 0x50(%rsp), %rdi
movl 0x58(%rsp), %esi
callq 0x1343
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x29, (%rax)
jne 0x69f5
incq %rax
movq %rax, (%r14)
movq %r14, %rdi
callq 0x7549
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6021
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x65, (%rax)
jne 0x67bc
cmpb $0x6c, 0x1(%rax)
jne 0x67bc
movsbl 0x4(%rax), %edi
callq 0x71d9
testb %al, %al
je 0x685a
leaq 0x25ae(%rip), %rsi      # 0x8d71
movq %rbx, %rdi
movl %r15d, %edx
xorl %eax, %eax
callq 0x1100
jmp 0x69cb
leaq 0x5a6c(%rip), %rax      # 0xc248
movl (%rax), %edx
leaq 0x1dd0(%rip), %rsi      # 0x85b5
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1100
movq 0x50(%rsp), %rdi
movl 0x58(%rsp), %esi
callq 0x1343
leaq 0x5a44(%rip), %rax      # 0xc248
movl (%rax), %edx
movl 0x5bc8(%rip), %eax      # 0xc3d4
shll $0x2, %eax
subl %eax, %edx
leaq 0x1fac(%rip), %rsi      # 0x87c4
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1100
movl 0x5bac(%rip), %eax      # 0xc3d4
leal 0x4(,%rax,4), %edx
leaq 0x24e8(%rip), %rsi      # 0x8d1e
movq %rbx, %rdi
xorl %eax, %eax
callq 0x1100
leaq 0x24e8(%rip), %rdi      # 0x8d2f
pushq $0x7
popq %rsi
pushq $0x1
popq %rdx
movq %rbx, %rcx
callq 0x1190
jmp 0x69cb
addq $0x4, (%r14)
movl (%r13), %r12d
leal 0x1(%r12), %eax
movl %eax, (%r13)
leaq 0x24e8(%rip), %rsi      # 0x8d5a
movq %rbx, %rdi
movl %r12d, %edx
xorl %eax, %eax
callq 0x1100
leaq 0x24eb(%rip), %r13      # 0x8d71
movq %rbx, %rdi
movq %r13, %rsi
movl %r15d, %edx
xorl %eax, %eax
callq 0x1100
movq %r14, %rdi
callq 0x7549
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6021
movq %rbx, %rdi
movq %r13, %rsi
movl %r12d, %edx
jmp 0x67c9
leaq 0x22ef(%rip), %rsi      # 0x8bad
movq %rbx, %rdi
movl %ebp, %edx
xorl %eax, %eax
callq 0x1100
movq 0x50(%rsp), %rdi
movl 0x58(%rsp), %esi
callq 0x1343
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x3b, (%rax)
jne 0x69e9
movl %r15d, 0x48(%rsp)
movl %ebp, %r15d
leal 0x2(%r12), %r13d
incq %rax
movq %rax, (%r14)
leaq 0x2463(%rip), %rsi      # 0x8d69
movq %rbx, %rdi
movl %r13d, %edx
movl 0x40(%rsp), %ecx
xorl %eax, %eax
callq 0x1100
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x29, (%rax)
je 0x6966
leaq 0x50(%rsp), %rbp
pushq $0x1
popq %rdx
movq %rbp, %rdi
movq %r14, %rsi
xorl %ecx, %ecx
movq %rbx, %r8
callq 0x55d7
movq %rbp, %rdi
movq %rbx, %rsi
callq 0x563c
movq (%rbp), %rdi
movl 0x8(%rbp), %esi
callq 0x1343
movq %r14, %rdi
callq 0x7549
movq (%r14), %rax
cmpb $0x29, (%rax)
jne 0x69dd
incq %rax
movq %rax, (%r14)
leaq 0x23f6(%rip), %rbp      # 0x8d69
movq %rbx, %rdi
movq %rbp, %rsi
movl %r12d, %edx
movl %r13d, %ecx
xorl %eax, %eax
callq 0x1100
movq %r14, %rdi
callq 0x7549
movq %r14, %rdi
movq %rbx, %rsi
callq 0x6021
movq %rbx, %rdi
movq %rbp, %rsi
movl 0x40(%rsp), %edx
movl %r15d, %ecx
xorl %eax, %eax
callq 0x1100
movl 0x4c(%rsp), %eax
movl %eax, 0x5c91(%rip)      # 0xc648
movl 0x48(%rsp), %eax
movl %eax, 0x57b7(%rip)      # 0xc178
movl 0x44(%rsp), %eax
movl %eax, 0x57b1(%rip)      # 0xc17c
addq $0xa8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movabsq $0x27282720646574, %rax # imm = 0x27282720646574
jmp 0x69ff
movabsq $0x273b2720646574, %rax # imm = 0x273B2720646574
jmp 0x69ff
movabsq $0x27292720646574, %rax # imm = 0x27292720646574
movq %rax, 0x5adf(%rip)      # 0xc4e5
movabsq $0x6465746365707845, %rax # imm = 0x6465746365707845
movq %rax, 0x5ac9(%rip)      # 0xc4e0
jmp 0x6ab6
movups 0x2390(%rip), %xmm0     # 0x8db3
movups %xmm0, 0x5abf(%rip)     # 0xc4e9
movups 0x2379(%rip), %xmm0     # 0x8daa
jmp 0x6aaf
movups 0x2389(%rip), %xmm0     # 0x8dc3
movaps %xmm0, 0x5a9f(%rip)     # 0xc4e0
movabsq $0x666f2074756f20, %rax # imm = 0x666F2074756F20
movq %rax, 0x5a9e(%rip)      # 0xc4f0
jmp 0x6ab6
movups 0x238c(%rip), %xmm0     # 0x8de7
movups %xmm0, 0x5a8a(%rip)     # 0xc4ec
movups 0x2372(%rip), %xmm0     # 0x8ddb
jmp 0x6aaf
movups 0x2385(%rip), %xmm0     # 0x8df7
movaps %xmm0, 0x5a67(%rip)     # 0xc4e0
movabsq $0x6e692065756e69, %rax # imm = 0x6E692065756E69
movq %rax, 0x5a65(%rip)      # 0xc4ef
jmp 0x6ab6
movups 0x2307(%rip), %xmm0     # 0x8d9a
movups %xmm0, 0x5a5f(%rip)     # 0xc4f9
movups 0x22f0(%rip), %xmm0     # 0x8d91
movaps %xmm0, 0x5a48(%rip)     # 0xc4f0
movups 0x22d2(%rip), %xmm0     # 0x8d81
movaps %xmm0, 0x5a2a(%rip)     # 0xc4e0
pushq $0x1
popq %rdi
callq 0x56c5