// File: /workspace/github_c_makefile_star2_O2/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 0x254f(%rip), %rbp      # 0x411c
movq 0x2420(%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl (%rax), %edx
leal -0x80(%rdx), %ecx
cmpl $0x25, %ecx
jbe 0x1c2f
cmpl $0x16, %edx
jbe 0x1c8e
leal -0x20(%rdx), %ecx
cmpl $0x15, %ecx
ja 0x1cb9
leaq 0x24be(%rip), %rsi      # 0x40c4
movslq (%rsi,%rcx,4), %rcx
addq %rsi, %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 0x1bcd
movslq (%rbp,%rcx,4), %rcx
addq %rbp, %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
leaq 0x5cab(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
callq 0x27e0
jmp 0x2306
movl %edx, %ecx
leaq 0x23d1(%rip), %rsi      # 0x4068
movslq (%rsi,%rcx,4), %rcx
addq %rsi, %rcx
jmpq *%rcx
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %edi
callq 0x1050
jmp 0x1bcd
leal -0xb0(%rdx), %ecx
cmpl $0x3, %ecx
jbe 0x1d2a
cmpl $0x40, %edx
je 0x2649
cmpl $0x43, %edx
je 0x2667
cmpl $0x47, %edx
je 0x25e3
cmpl $0x50, %edx
jne 0x271c
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
movq 0x2410(%rbx), %rax
movq (%rax), %rdi
callq 0x192a
movq %rax, %rdi
callq 0x28bc
jmp 0x22a4
leaq 0x2483(%rip), %rdx      # 0x41b4
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
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 (%r14,%rcx,4), %rdi
leaq 0x5bae(%rip), %r12      # 0x7928
addq (%r12), %rdi
callq 0x28e4
subl (%r12), %eax
movl %eax, (%r14,%r15,4)
jmp 0x1bcd
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 0x1bcd
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 0x1bcd
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
cvtss2sd (%rcx,%rax,4), %xmm0
leaq 0x239e(%rip), %rdi      # 0x41c5
movb $0x1, %al
callq 0x10c0
jmp 0x1bcd
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 0x1bcd
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl (%r14,%rax,4), %edi
callq 0x2806
jmp 0x22a4
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movl (%rcx,%rax,4), %esi
leaq 0x22f9(%rip), %rdi      # 0x41c8
xorl %eax, %eax
callq 0x10c0
jmp 0x1bcd
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movslq (%rcx,%rax,4), %rdi
leaq 0x5a2c(%rip), %rax      # 0x7928
addq (%rax), %rdi
callq 0x28a3
jmp 0x1bcd
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
leaq 0x59df(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
movzbl (%r12,%rcx,4), %edx
callq 0x2875
jmp 0x2306
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 0x1bcd
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 0x1bcd
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
leaq 0x5911(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
callq 0x284c
jmp 0x2306
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movl (%r14,%rax,4), %edi
callq 0x27cc
jmp 0x22a4
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 0x1bcd
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movslq (%r14,%rax,4), %rdi
leaq 0x5859(%rip), %rax      # 0x7928
addq (%rax), %rdi
callq 0x27dc
movl %eax, (%r14,%r15,4)
jmp 0x1bcd
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 0x1bcd
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
leaq 0x57c6(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
movl (%r12,%rcx,4), %edx
callq 0x27f4
jmp 0x2306
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 0x1bcd
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
leaq 0x5740(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
callq 0x2861
jmp 0x2306
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %eax
movslq (%r14,%rax,4), %rdi
leaq 0x56fe(%rip), %rax      # 0x7928
addq (%rax), %rdi
callq 0x2848
movl %eax, (%r14,%r15,4)
jmp 0x1bcd
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 0x1bcd
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x6(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movslq 0x2(%rax), %rdi
movq 0x2410(%rbx), %rax
movq (%rax), %rax
addq 0x70(%rax), %rdi
callq 0x2816
leaq 0x567d(%rip), %rcx      # 0x7928
subl (%rcx), %eax
movl %eax, (%r14,%r15,4)
jmp 0x1bcd
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
leaq 0x5632(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%r12,%r13,4), %esi
movl (%r12,%rcx,4), %edx
callq 0x2887
testl %eax, %eax
jns 0x1bcd
jmp 0x270e
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 0x1bcd
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 0x1bcd
movswq (%rdx), %rax
addq %rax, %rcx
movq %rcx, 0x2420(%rbx)
jmp 0x1bcd
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 0x1bcd
jmp 0x24c7
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 0x1bcd
jmp 0x24c7
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 0x1bcd
jmp 0x24c7
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 0x1bcd
jmp 0x24c7
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 0x1bcd
movswq (%rcx), %rcx
addq %rcx, %rax
movq %rax, 0x2420(%rbx)
jmp 0x1bcd
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 0x1bcd
movq 0x2000(%rbx), %r14
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %r15d
leaq 0x3(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x2(%rax), %esi
movslq (%r14), %rdi
leaq 0x53ee(%rip), %rax      # 0x7928
addq (%rax), %rdi
callq 0x28d5
movl %eax, (%r14,%r15,4)
jmp 0x1bcd
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
leaq 0x53ae(%rip), %rax      # 0x7928
addq (%rax), %rdi
movl (%rcx,%rdx,4), %edx
callq 0x28dc
jmp 0x1bcd
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
leaq 0x5363(%rip), %rdi      # 0x7928
movq (%rdi), %r8
movslq (%rcx,%rdx,4), %rdi
addq %r8, %rdi
movslq (%rcx,%rsi,4), %rsi
addq %r8, %rsi
movl (%rcx,%rax,4), %edx
callq 0x29af
jmp 0x1bcd
movq %rbx, %rdi
callq 0x1b8c
jmp 0x1bcd
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
leaq 0x52fd(%rip), %rdi      # 0x7928
movq (%rdi), %r8
movslq (%rcx,%rdx,4), %rdi
addq %r8, %rdi
movslq (%rcx,%rsi,4), %rsi
addq %r8, %rsi
movl (%rcx,%rax,4), %edx
callq 0x29b9
jmp 0x1bcd
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %edx
movq 0x2410(%rbx), %rax
movq (%rax), %rsi
movq %rbx, %rdi
jmp 0x26c2
leaq 0x2(%rax), %rcx
movq %rcx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movq 0x2410(%rbx), %rcx
movq (%rcx), %rdi
movq 0x40(%rdi), %r15
imulq $0x6, %rax, %r14
movzwl (%r15,%r14), %r12d
addq 0x60(%rdi), %r12
movzbl 0x5(%r15,%r14), %esi
callq 0x192a
movq %rax, %r13
movzbl 0x4(%r15,%r14), %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x1940
movq 0x10(%r13), %rcx
movzbl %al, %eax
movzbl 0x2(%rcx,%rax,4), %edx
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1b04
testl %eax, %eax
je 0x1bcd
jmp 0x2717
movq 0x2000(%rbx), %rcx
leaq 0x2(%rax), %rdx
movq %rdx, 0x2420(%rbx)
movzbl 0x1(%rax), %eax
movslq (%rcx,%rax,4), %rdi
leaq 0x5236(%rip), %rax      # 0x7928
addq (%rax), %rdi
callq 0x29a9
jmp 0x1bcd
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl (%r12,%r13,4), %edi
callq 0x275b
callq 0x273c
movq 0x48cd(%rip), %rax      # 0x6ff0
movq (%rax), %rdi
leaq 0x1a9e(%rip), %rsi      # 0x41cb
xorl %eax, %eax
callq 0x1100
pushq $0x1
popq %rdi
callq 0x1150