// File: /workspace/github_c_makefile_star2_O3/almk277[P]ROSE/rose/cpu.c
// Function: thread_run
void thread_run(Thread *t)
{
	while(1) {
		BYTE(code);
		switch(code) {
		case I_nop:
			break;
		case I_exit:
			return;
		case I_dbg_byte:
		{
			BYTE(op);
			putchar(op);
			break;
		}
		case I_dbg_flt:
		{
			FLT(op);
			printf("%f", *op);
			break;
		}
		case I_dbg_int:
		{
			INT(op);
			printf("%d", *op);
			break;
		}
		case I_int_byte:
		{
			INT(i); BYTE(n);
			*i = n;
			break;
		}
		case I_int_new:
		{
			INT(i); WORD(n);
			*i = n;
			break;
		}
		case I_int_inc:
		{
			INT(i); BYTE(c);
			*i += c;
			break;
		}
		case I_int_add:
		{
			INT(i); INT(i1); INT(i2);
			*i = *i1 + *i2;
			break;
		}
		case I_int_sub:
		{
			INT(i); INT(i1); INT(i2);
			*i = *i1 - *i2;
			break;
		}
		case I_flt_new:
		{
			FLT(x); WORD(n);
			*x = *(float*)&n;
			break;
		}
		case I_flt_add:
		{
			FLT(x); FLT(x1); FLT(x2);
			*x = *x1 + *x2;
			break;
		}
		case I_flt_sub:
		{
			FLT(x); FLT(x1); FLT(x2);
			*x = *x1 - *x2;
			break;
		}
		case I_flt_mul:
		{
			FLT(x); FLT(x1); FLT(x2);
			*x = *x1 * *x2;
			break;
		}
		case I_flt_div:
		{
			FLT(x); FLT(x1); FLT(x2);
			*x = *x1 / *x2;
			break;
		}
		case I_jmp:
		{
			OFS(ofs);
			jump(ofs);
			break;
		}
		case I_jmp_int_z:
		{
			INT(i); OFS(ofs);
			if(*i == 0)
				jump(ofs);
			break;
		}
		case I_jmp_int_eq:
		{
			INT(i1); INT(i2); OFS(ofs);
			if(*i1 == *i2)
				jump(ofs);
			break;
		}
		case I_jmp_int_l:
		{
			INT(i1); INT(i2); OFS(ofs);
			if(*i1 < *i2)
				jump(ofs);
			break;
		}
		case I_jmp_int_le:
		{
			INT(i1); INT(i2); OFS(ofs);
			if(*i1 <= *i2)
				jump(ofs);
			break;
		}
		case I_jmp_flt_l:
		{
			FLT(f1); FLT(f2); OFS(ofs);
			if(*f1 <= *f2)
				jump(ofs);
			break;
		}
		case I_jmp_ref_eq:
		{
			WORD(r1); WORD(r2); OFS(ofs);
			if(r1 == r2)
				jump(ofs);
			break;
		}
		case I_call:
		{
			PROC(p_idx);
			if(thread_call_intern(t, MODULE, p_idx))
				stack_overflow();
			break;
		}
		case I_return:
		{
			thread_return(t);
			break;
		}
		case I_invoke:
		{
			IMP(i);
			const Segments *const seg = SEG;
			const RMDImport *imp = imp_get(seg, i);
			Symbol *procname = sym_get(seg, imp->name);
			Module *m = module_get_module(MODULE, imp->module);
			RA_Export exp_idx = module_exp_get_obligatory(m, procname, imp->slot);
			const RMDExport *exp = exp_get(&m->seg, exp_idx);
			if(thread_call_intern(t, m, exp->idx))
				stack_overflow();
			break;
		}
		case I_barr_new:
		{
			REF(r); INT(size);
			RD_ByteArray *a = bytearray_new(*size);
			*r = ptr_to_ref(a);
			break;
		}
		case I_barr_load:
		{
			REF(r); WORD(addr);
			const R_Byte *source = str_get(SEG, addr);
			RD_ByteArray *a = bytearray_load(source);
			*r = ptr_to_ref(a);
			break;
		}
		case I_barr_len:
		{
			INT(len); REF(r);
			*len = bytearray_length(ref_to_ptr(*r));
			break;
		}
		case I_dbg_str:
		{
			REF(r);
			RD_ByteArray *a = ref_to_ptr(*r);
			bytearray_print(a);
			break;
		}
		case I_barr_getb:
		{
			INT(v); REF(r); INT(i);
			RD_ByteArray *a = ref_to_ptr(*r);
			if(bytearray_get_byte(a, *i, v) < 0)
				out_of_range(*i);
			break;
		}
		case I_barr_getw:
		{
			INT(v); REF(r); INT(i);
			RD_ByteArray *a = ref_to_ptr(*r);
			if(bytearray_get_word(a, *i, v) < 0)
				out_of_range(*i);
			break;
		}
		case I_barr_putb:
		{
			INT(v); REF(r); INT(i);
			RD_ByteArray *a = ref_to_ptr(*r);
			if(bytearray_put_byte(a, *i, *v) < 0)
				out_of_range(*i);
			break;
		}
		case I_barr_putw:
		{
			INT(v); REF(r); INT(i);
			RD_ByteArray *a = ref_to_ptr(*r);
			if(bytearray_put_word(a, *i, *v) < 0)
				out_of_range(*i);
			break;
		}
		case I_arr_new:
		{
			REF(r); INT(size);
			RD_Array *a = array_new(*size);
			*r = ptr_to_ref(a);
			break;
		}
		case I_arr_len:
		{
			INT(len); REF(r);
			*len = array_length(ref_to_ptr(*r));
			break;
		}
		case I_arr_get:
		{
			INT(v); REF(r); INT(i);
			RD_Array *a = ref_to_ptr(*r);
			if(array_get(a, *i, v) < 0)
				out_of_range(*i);
			break;
		}
		case I_arr_put:
		{
			INT(v); REF(r); INT(i);
			RD_Array *a = ref_to_ptr(*r);
			if(array_put(a, *i, *v) < 0)
				out_of_range(*i);
			break;
		}
		case I_move:
		{
			INT(i1); INT(i2);
			*i1 = *i2;
			break;
		}
		case I_obj_new:
		{
			REF(r); MOD(m_idx);
			Module *m = module_get_module(MODULE, m_idx);
			RD_Object *o = object_new(m);
			*r = ptr_to_ref(o);
			break;
		}
		case I_obj_load:
		{
			INT(var); DATA(d);
			RD_Object *o = ref_to_ptr(OBJECT);
			*var = object_load(o, d);
			break;
		}
		case I_obj_store:
		{
			INT(var); DATA(d);
			RD_Object *o = ref_to_ptr(OBJECT);
			object_store(o, d, *var);
			break;
		}
		case I_file_open:
		{
			REF(f); REF(name); BYTE(mode);
			RD_ByteArray *a_name = ref_to_ptr(*name);
			RD_File *file = file_open(a_name, mode);
			*f = ptr_to_ref(file);
			break;
		}
		case I_file_close:
		{
			REF(f);
			RD_File *file = ref_to_ptr(*f);
			file_close(file);
			break;
		}
		case I_file_read:
		{
			REF(f); REF(buf); INT(size);
			RD_File *file = ref_to_ptr(*f);
			RD_ByteArray *a = ref_to_ptr(*buf);
			file_read(file, a, *size);
			break;
		}
		case I_file_write:
		{
			REF(f); REF(buf); INT(size);
			RD_File *file = ref_to_ptr(*f);
			RD_ByteArray *a = ref_to_ptr(*buf);
			file_write(file, a, *size);
			break;
		}
		default:
			fprintf(stderr, "Fatal error: no such instruction: 0x%X\n", code);
			exit(1);
		} /* switch */
	} /* while */
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x21f3(%rip), %rbp      # 0x4068
leaq 0x5ab4(%rip), %r14      # 0x7930
movq 0x2420(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl (%rax), %edi
cmpl $0x46, %edi
jg 0x1edb
cmpl $0x1f, %edi
jle 0x1f59
leal -0x20(%rdi), %ecx
cmpl $0x15, %ecx
ja 0x1fec
leaq 0x2212(%rip), %rdx      # 0x40c4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movswq 0x1(%rax), %rcx
addq %rcx, %rax
addq $0x3, %rax
movq %rax, 0x2420(%rbx)
jmp 0x1e7c
cmpl $0xaf, %edi
jg 0x1f87
leal -0x80(%rdi), %ecx
cmpl $0x25, %ecx
ja 0x2079
leaq 0x2222(%rip), %rdx      # 0x411c
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq (%r12,%rcx,4), %rdx
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %ecx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rcx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
callq 0x2a68
testl %eax, %eax
jns 0x1e7c
jmp 0x29e1
cmpl $0x16, %edi
ja 0x2a02
movl %edi, %ecx
movslq (%rbp,%rcx,4), %rcx
addq %rbp, %rcx
jmpq *%rcx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %edi
callq 0x1050
jmp 0x1e7c
leal -0xb0(%rdi), %ecx
cmpl $0x3, %ecx
ja 0x2a02
leaq 0x2217(%rip), %rdx      # 0x41b4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %ecx
leaq 0x4(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x3(%rax), %esi
movslq (%r15,%rcx,4), %rdi
addq (%r14), %rdi
callq 0x2b7c
jmp 0x27b2
cmpl $0x40, %edi
je 0x296f
cmpl $0x43, %edi
jne 0x2a02
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movq 0x2410(%rbx), %rcx
movq (%rcx), %rdi
movq %rbp, %r14
movq 0x40(%rdi), %rbp
leaq (%rax,%rax,2), %r15
movzwl (%rbp,%r15,2), %r12d
addq 0x60(%rdi), %r12
movzbl 0x5(%rbp,%r15,2), %esi
callq 0x1bef
movq %rax, %r13
movzbl 0x4(%rbp,%r15,2), %edx
movq %r14, %rbp
leaq 0x58e6(%rip), %r14      # 0x7930
movq %rax, %rdi
movq %r12, %rsi
callq 0x1c05
movq 0x10(%r13), %rcx
movzbl %al, %eax
movzbl 0x2(%rcx,%rax,4), %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1dab
testl %eax, %eax
je 0x1e7c
jmp 0x29dc
cmpl $0x47, %edi
je 0x299a
cmpl $0x50, %edi
jne 0x2a02
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
movq 0x2410(%rbx), %rax
movq (%rax), %rdi
callq 0x1bef
movq %rax, %rdi
callq 0x2b54
jmp 0x27b2
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
addl %eax, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
movslq (%r15), %rdi
addq (%r14), %rdi
callq 0x2b6d
movl %eax, (%r15,%r12,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rdx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %esi
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %edi
addq $0x5, %rax
movq %rax, 0x2420(%rbx)
movl (%rdx,%rsi,4), %esi
cmpl (%rdx,%rdi,4), %esi
jg 0x1e7c
jmp 0x2359
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl %eax, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
xorps %xmm0, %xmm0
cvtss2sd (%rcx,%rax,4), %xmm0
leaq 0x1ffe(%rip), %rdi      # 0x41c5
movb $0x1, %al
callq 0x10c0
jmp 0x1e7c
movq 0x2000(%rbx), %rdx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %esi
addq $0x4, %rax
movq %rax, 0x2420(%rbx)
cmpl $0x0, (%rdx,%rsi,4)
jne 0x1e7c
jmp 0x2359
movq 0x2000(%rbx), %rdx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %esi
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %edi
addq $0x5, %rax
movq %rax, 0x2420(%rbx)
movss (%rdx,%rdi,4), %xmm0
ucomiss (%rdx,%rsi,4), %xmm0
jb 0x1e7c
jmp 0x2359
movq 0x2000(%rbx), %rdx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %esi
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %edi
addq $0x5, %rax
movq %rax, 0x2420(%rbx)
movl (%rdx,%rsi,4), %esi
cmpl (%rdx,%rdi,4), %esi
jge 0x1e7c
jmp 0x2359
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movl (%rcx,%rax,4), %esi
leaq 0x1f20(%rip), %rdi      # 0x41c8
xorl %eax, %eax
callq 0x10c0
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movl (%rcx,%rax,4), %eax
addl (%rcx,%rsi,4), %eax
movl %eax, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movslq (%rcx,%rax,4), %rdi
addq (%r14), %rdi
callq 0x2b36
jmp 0x1e7c
movq 0x2000(%rbx), %rdx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %esi
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %edi
addq $0x5, %rax
movq %rax, 0x2420(%rbx)
movl (%rdx,%rsi,4), %esi
cmpl (%rdx,%rdi,4), %esi
jne 0x1e7c
movswq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x2420(%rbx)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movl (%rcx,%rsi,4), %esi
subl (%rcx,%rax,4), %esi
movl %esi, (%rcx,%rdx,4)
jmp 0x1e7c
leaq 0x5(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movl 0x1(%rax), %esi
leaq 0x9(%rax), %rdx
movq %rdx, 0x2420(%rbx)
leaq 0xb(%rax), %rcx
cmpl 0x5(%rax), %esi
movq %rcx, 0x2420(%rbx)
jne 0x1e7c
movswq (%rdx), %rax
addq %rax, %rcx
movq %rcx, 0x2420(%rbx)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl (%rcx,%rax,4), %eax
movl %eax, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x6(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movslq 0x2(%rax), %rdi
movq 0x2410(%rbx), %rax
movq (%rax), %rax
addq 0x70(%rax), %rdi
callq 0x2aa0
jmp 0x27b2
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x6(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movl 0x2(%rax), %eax
movl %eax, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movss (%rcx,%rsi,4), %xmm0
divss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
movslq (%rcx), %rdi
addq (%r14), %rdi
movl (%rcx,%rdx,4), %edx
callq 0x2b74
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movss (%rcx,%rsi,4), %xmm0
subss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq 0x3(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x2(%rax), %edx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rdx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
movzbl (%r12,%rcx,4), %edx
callq 0x2b06
testl %eax, %eax
jns 0x1e7c
jmp 0x29c1
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq 0x3(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x2(%rax), %edx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rdx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
movl (%r12,%rcx,4), %edx
callq 0x2b19
testl %eax, %eax
jns 0x1e7c
jmp 0x29cc
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl (%r15,%rax,4), %edi
callq 0x2a54
jmp 0x27b2
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movslq (%r15,%rax,4), %rdi
addq (%r14), %rdi
callq 0x2a64
movl %eax, (%r15,%r12,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movslq (%r15,%rax,4), %rdi
addq (%r14), %rdi
callq 0x2ad7
movl %eax, (%r15,%r12,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq 0x3(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x2(%rax), %edx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rdx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
movl (%r12,%rcx,4), %edx
callq 0x2a7d
testl %eax, %eax
jns 0x1e7c
jmp 0x29ec
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x6(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movss 0x2(%rax), %xmm0
movss %xmm0, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq (%r12,%rcx,4), %rdx
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %ecx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rcx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
callq 0x2af1
testl %eax, %eax
jns 0x1e7c
jmp 0x29b6
movq 0x2000(%rbx), %r15
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r12d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl (%r15,%rax,4), %edi
callq 0x2a90
subl (%r14), %eax
movl %eax, (%r15,%r12,4)
jmp 0x1e7c
movq 0x2000(%rbx), %r12
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %ecx
leaq (%r12,%rcx,4), %rdx
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %ecx
leaq 0x4(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x3(%rax), %r13d
movslq (%r12,%rcx,4), %rdi
addq (%r14), %rdi
movl (%r12,%r13,4), %esi
callq 0x2adb
testl %eax, %eax
jns 0x1e7c
jmp 0x29f7
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movss (%rcx,%rsi,4), %xmm0
mulss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movss (%rcx,%rsi,4), %xmm0
addss (%rcx,%rax,4), %xmm0
movss %xmm0, (%rcx,%rdx,4)
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movq (%r14), %r8
movslq (%rcx,%rdx,4), %rdi
addq %r8, %rdi
movslq (%rcx,%rsi,4), %rsi
addq %r8, %rsi
movl (%rcx,%rax,4), %edx
callq 0x2c45
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
leaq 0x3(%rax), %rsi
movq %rsi, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
leaq 0x4(%rax), %rdi
movq %rdi, 0x2420(%rbx)
movzbl 0x3(%rax), %eax
movq (%r14), %r8
movslq (%rcx,%rdx,4), %rdi
addq %r8, %rdi
movslq (%rcx,%rsi,4), %rsi
addq %r8, %rsi
movl (%rcx,%rax,4), %edx
callq 0x2c4f
jmp 0x1e7c
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movslq (%rcx,%rax,4), %rdi
addq (%r14), %rdi
callq 0x2c3f
jmp 0x1e7c
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
movq 0x2410(%rbx), %rax
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x1dab
testl %eax, %eax
je 0x1e7c
jmp 0x29d7
movq %rbx, %rdi
callq 0x1e36
jmp 0x1e7c
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rdi
movq %r13, %rsi
callq 0x1284
movq %r12, %rdi
movq %r13, %rsi
callq 0x1260
movq %r12, %rdi
movq %r13, %rsi
callq 0x123c
callq 0x12eb
callq 0x12cc
movq %r12, %rdi
movq %r13, %rsi
callq 0x1218
movq %r12, %rdi
movq %r13, %rsi
callq 0x11f4
movq %r12, %rdi
movq %r13, %rsi
callq 0x12a8
callq 0x130a
nop