// File: /workspace/github_c_makefile_star2_O1/mmcco[P]sljit/sljit_src/sljitNativeX86_common.c
// Function: sljit_emit_op1
int sljit_emit_op1(struct sljit_compiler *compiler, int op,
	int dst, long dstw,
	int src, long srcw)
{
	u_char* inst;
	int update = 0;
	int op_flags = GET_ALL_FLAGS(op);
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
	int dst_is_ereg = 0;
	int src_is_ereg = 0;
#else
#	define src_is_ereg 0
#endif

	CHECK_ERROR();
	CHECK(check_sljit_emit_op1(compiler, op, dst, dstw, src, srcw));
	ADJUST_LOCAL_OFFSET(dst, dstw);
	ADJUST_LOCAL_OFFSET(src, srcw);

	CHECK_EXTRA_REGS(dst, dstw, dst_is_ereg = 1);
	CHECK_EXTRA_REGS(src, srcw, src_is_ereg = 1);
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
	compiler->mode32 = op_flags & SLJIT_INT_OP;
#endif

	op = GET_OPCODE(op);
	if (op >= SLJIT_MOV && op <= SLJIT_MOVU_P) {
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
		compiler->mode32 = 0;
#endif

		if (op_flags & SLJIT_INT_OP) {
			if (FAST_IS_REG(src) && src == dst) {
				if (!TYPE_CAST_NEEDED(op))
					return SLJIT_SUCCESS;
			}
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
			if (op == SLJIT_MOV_SI && (src & SLJIT_MEM))
				op = SLJIT_MOV_UI;
			if (op == SLJIT_MOVU_SI && (src & SLJIT_MEM))
				op = SLJIT_MOVU_UI;
			if (op == SLJIT_MOV_UI && (src & SLJIT_IMM))
				op = SLJIT_MOV_SI;
			if (op == SLJIT_MOVU_UI && (src & SLJIT_IMM))
				op = SLJIT_MOVU_SI;
#endif
		}

		SLJIT_COMPILE_ASSERT(SLJIT_MOV + 8 == SLJIT_MOVU, movu_offset);
		if (op >= SLJIT_MOVU) {
			update = 1;
			op -= 8;
		}

		if (src & SLJIT_IMM) {
			switch (op) {
			case SLJIT_MOV_UB:
				srcw = (u_char)srcw;
				break;
			case SLJIT_MOV_SB:
				srcw = (s_char)srcw;
				break;
			case SLJIT_MOV_UH:
				srcw = (unsigned short)srcw;
				break;
			case SLJIT_MOV_SH:
				srcw = (short)srcw;
				break;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
			case SLJIT_MOV_UI:
				srcw = (unsigned int)srcw;
				break;
			case SLJIT_MOV_SI:
				srcw = (int)srcw;
				break;
#endif
			}
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
			if (dst_is_ereg)
				return emit_mov(compiler, dst, dstw, src, srcw);
#endif
		}

		if (update && (src & SLJIT_MEM) && !src_is_ereg && (src & REG_MASK) && (srcw != 0 || (src & OFFS_REG_MASK) != 0)) {
			inst = emit_x86_instruction(compiler, 1, src & REG_MASK, 0, src, srcw);
			FAIL_IF(!inst);
			*inst = LEA_r_m;
			src &= SLJIT_MEM | 0xf;
			srcw = 0;
		}

#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
		if (dst_is_ereg && (!(op == SLJIT_MOV || op == SLJIT_MOV_UI || op == SLJIT_MOV_SI || op == SLJIT_MOV_P) || (src & SLJIT_MEM))) {
			SLJIT_ASSERT(dst == SLJIT_MEM1(SLJIT_SP));
			dst = TMP_REG1;
		}
#endif

		switch (op) {
		case SLJIT_MOV:
		case SLJIT_MOV_P:
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
		case SLJIT_MOV_UI:
		case SLJIT_MOV_SI:
#endif
			FAIL_IF(emit_mov(compiler, dst, dstw, src, srcw));
			break;
		case SLJIT_MOV_UB:
			FAIL_IF(emit_mov_byte(compiler, 0, dst, dstw, src, srcw));
			break;
		case SLJIT_MOV_SB:
			FAIL_IF(emit_mov_byte(compiler, 1, dst, dstw, src, srcw));
			break;
		case SLJIT_MOV_UH:
			FAIL_IF(emit_mov_half(compiler, 0, dst, dstw, src, srcw));
			break;
		case SLJIT_MOV_SH:
			FAIL_IF(emit_mov_half(compiler, 1, dst, dstw, src, srcw));
			break;
#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
		case SLJIT_MOV_UI:
			FAIL_IF(emit_mov_int(compiler, 0, dst, dstw, src, srcw));
			break;
		case SLJIT_MOV_SI:
			FAIL_IF(emit_mov_int(compiler, 1, dst, dstw, src, srcw));
			break;
#endif
		}

#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
		if (dst_is_ereg && dst == TMP_REG1)
			return emit_mov(compiler, SLJIT_MEM1(SLJIT_SP), dstw, TMP_REG1, 0);
#endif

		if (update && (dst & SLJIT_MEM) && (dst & REG_MASK) && (dstw != 0 || (dst & OFFS_REG_MASK) != 0)) {
			inst = emit_x86_instruction(compiler, 1, dst & REG_MASK, 0, dst, dstw);
			FAIL_IF(!inst);
			*inst = LEA_r_m;
		}
		return SLJIT_SUCCESS;
	}

	if (GET_FLAGS(op_flags))
		compiler->flags_saved = 0;

	switch (op) {
	case SLJIT_NOT:
		if (op_flags & SLJIT_SET_E)
			return emit_not_with_flags(compiler, dst, dstw, src, srcw);
		return emit_unary(compiler, NOT_rm, dst, dstw, src, srcw);

	case SLJIT_NEG:
		if (op_flags & SLJIT_KEEP_FLAGS && !compiler->flags_saved)
			FAIL_IF(emit_save_flags(compiler));
		return emit_unary(compiler, NEG_rm, dst, dstw, src, srcw);

	case SLJIT_CLZ:
		if (op_flags & SLJIT_KEEP_FLAGS && !compiler->flags_saved)
			FAIL_IF(emit_save_flags(compiler));
		return emit_clz(compiler, op_flags, dst, dstw, src, srcw);
	}

	return SLJIT_SUCCESS;

#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64)
#	undef src_is_ereg
#endif
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl (%rdi), %r15d
testl %r15d, %r15d
jne 0x1781a
movq %r9, %r12
movl %r8d, %ebx
movq %rcx, %r13
movl %edx, %r10d
movl %esi, %ebp
movq %rdi, %r14
cmpl $0x0, 0x84(%rdi)
je 0x16cef
movl $0x0, 0x84(%r14)
jmp 0x173d6
movl %ebp, %ecx
andl $0xffff80ff, %ecx       # imm = 0xFFFF80FF
leal -0x20(%rcx), %eax
cmpl $0x13, %eax
jae 0x17b3e
testl $0x3e00, %ebp           # imm = 0x3E00
sete %dl
btl $0xe, %ebp
setae %sil
orb %dl, %sil
je 0x16fb7
cmpl $0x32, %ecx
ja 0x16f9f
movl %ecx, %edx
movabsq $0xa1a10000000f, %rsi   # imm = 0xA1A10000000F
btq %rdx, %rsi
jae 0x16f7b
testl $0x7f00, %ebp           # imm = 0x7F00
jne 0x16fb7
movl 0x48(%r14), %ecx
cmpl $-0x1, %ecx
je 0x17093
movl 0x4c(%r14), %edx
cmpl $-0x1, %edx
je 0x17093
testl %ebx, %ebx
setg %sil
cmpl %ebx, %ecx
setge %dil
testb %dil, %sil
jne 0x16d90
movl $0xc, %esi
subl %edx, %esi
cmpl %ebx, %esi
setge %dil
cmpl $0xd, %ebx
setge %r8b
orb %dil, %r8b
jne 0x16f48
testq %r12, %r12
jne 0x17093
testl %r10d, %r10d
je 0x16dcc
setg %sil
cmpl %r10d, %ecx
setge %dil
testb %dil, %sil
jne 0x16dcc
movl $0xc, %esi
subl %edx, %esi
cmpl %r10d, %esi
setge %dl
cmpl $0xd, %r10d
setge %dil
orb %dl, %dil
jne 0x16fc8
testq %r13, %r13
jne 0x17107
movl %ebp, %ecx
andl $0xffff80f8, %ecx       # imm = 0xFFFF80F8
cmpl $0x28, %ecx
jne 0x16e3f
movl %ebx, %ecx
andl $0xbf, %ecx
cmpl $0x8d, %ecx
je 0x17b30
movl %r10d, %ecx
andl $0xbf, %ecx
cmpl $0x8d, %ecx
je 0x17b30
movl %ebx, %ecx
andl $0x3f, %ecx
testb %bl, %bl
setns %dl
testl %ecx, %ecx
sete %sil
orb %dl, %sil
jne 0x16e3f
movl %r10d, %edx
andl $0x3f, %edx
cmpl %ecx, %edx
je 0x17b30
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
cmpl %ecx, %edx
je 0x17b30
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x173d6
movq %r12, (%rsp)
btl $0x8, %ebp
leaq 0x9505(%rip), %rsi      # 0x20360
leaq 0xc59a(%rip), %rdx      # 0x233fc
cmovaeq %rsi, %rdx
btl $0x9, %ebp
leaq 0xc600(%rip), %r8       # 0x23471
cmovaeq %rsi, %r8
btl $0xa, %ebp
leaq 0xc5f4(%rip), %r9       # 0x23474
cmovaeq %rsi, %r9
btl $0xb, %ebp
movq %r10, 0x8(%rsp)
leaq 0xc5e3(%rip), %r10      # 0x23477
cmovaeq %rsi, %r10
btl $0xc, %ebp
leaq 0xc5d7(%rip), %r11      # 0x2347a
cmovaeq %rsi, %r11
btl $0xd, %ebp
leaq 0xc5cb(%rip), %r15      # 0x2347d
cmovaeq %rsi, %r15
btl $0xe, %ebp
movl %eax, %eax
leaq 0x10ced(%rip), %rcx     # 0x27bb0
movq (%rcx,%rax,8), %rcx
leaq 0xc5b2(%rip), %r12      # 0x23480
cmovaeq %rsi, %r12
leaq 0xc584(%rip), %rsi      # 0x2345d
xorl %eax, %eax
pushq %r12
pushq %r15
pushq %r11
pushq %r10
callq 0x20b0
movq 0x28(%rsp), %rax
addq $0x20, %rsp
testb $0x40, %al
jne 0x16f2a
testb %al, %al
js 0x16ff3
testl %eax, %eax
movq (%rsp), %r12
je 0x17118
movq 0x78(%r14), %rdi
cmpl %eax, 0x48(%r14)
jge 0x17164
movl $0xc, %edx
subl %eax, %edx
leaq 0xc5ad(%rip), %rsi      # 0x234d2
jmp 0x1716e
movq 0x78(%r14), %rdi
leaq 0xc43c(%rip), %rsi      # 0x23371
movq %r13, %rdx
xorl %eax, %eax
callq 0x20b0
movq (%rsp), %r12
jmp 0x17236
cmpl $0x40, %ebx
je 0x16d99
cmpl $0x8d, %ebx
jne 0x17034
testq %r12, %r12
js 0x17093
movslq 0x80(%r14), %rsi
cmpq %r12, %rsi
jg 0x16d99
jmp 0x17093
movabsq $0x5000000000000, %rsi  # imm = 0x5000000000000
btq %rdx, %rsi
jb 0x16fab
cmpq $0x31, %rdx
jne 0x16f9f
testl $0x2c00, %ebp           # imm = 0x2C00
je 0x16d48
jmp 0x16fb7
addl $-0x65, %ecx
cmpl $0x6, %ecx
jae 0x17153
testl $0x3c00, %ebp           # imm = 0x3C00
je 0x16d48
leaq 0xc2b1(%rip), %rdi      # 0x2326f
movl $0x40e, %esi            # imm = 0x40E
jmp 0x17b4a
cmpl $0x8d, %r10d
jne 0x170a4
testq %r13, %r13
js 0x17107
movslq 0x80(%r14), %rcx
cmpq %r13, %rcx
jg 0x16dd5
jmp 0x17107
movl %eax, %r15d
movq 0x78(%r14), %rsi
andl $0x3f, %r15d
movq (%rsp), %r12
je 0x17137
movl $0x5b, %edi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r15d
jle 0x1717a
movl $0xc, %edx
subl %r15d, %edx
leaq 0xc4a3(%rip), %rsi      # 0x234d2
jmp 0x17187
testb %bl, %bl
jns 0x17093
movl %ebx, %edi
andl $0x3f, %edi
sete %r8b
cmpl %ecx, %edi
setle %r9b
orb %r8b, %r9b
jne 0x17055
cmpl $0xc, %edi
ja 0x17093
cmpl %esi, %edi
jle 0x17093
testl $0x3f00, %ebx           # imm = 0x3F00
je 0x17087
testl %edi, %edi
je 0x17093
movl %ebx, %edi
shrl $0x8, %edi
andl $0x3f, %edi
setne %r8b
cmpl %ecx, %edi
setle %r9b
testb %r9b, %r8b
jne 0x17081
cmpl $0xc, %edi
ja 0x17093
cmpl %esi, %edi
jle 0x17093
cmpq $0x4, %r12
jae 0x17093
cmpl $0x4000, %ebx           # imm = 0x4000
jb 0x16d99
leaq 0xc1d5(%rip), %rdi      # 0x2326f
movl $0x40f, %esi            # imm = 0x40F
jmp 0x17b4a
testb %r10b, %r10b
jns 0x17107
movl %r10d, %edx
andl $0x3f, %edx
sete %dil
cmpl %ecx, %edx
setle %r8b
orb %dil, %r8b
jne 0x170c7
cmpl $0xc, %edx
ja 0x17107
cmpl %esi, %edx
jle 0x17107
testl $0x3f00, %r10d          # imm = 0x3F00
je 0x170fa
testl %edx, %edx
je 0x17107
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
setne %dil
cmpl %ecx, %edx
setle %cl
testb %cl, %dil
jne 0x170f4
cmpl $0xc, %edx
ja 0x17107
cmpl %esi, %edx
jle 0x17107
cmpq $0x4, %r13
jae 0x17107
cmpl $0x4000, %r10d          # imm = 0x4000
jb 0x16dd5
leaq 0xc161(%rip), %rdi      # 0x2326f
movl $0x410, %esi            # imm = 0x410
jmp 0x17b4a
movq 0x78(%r14), %rcx
leaq 0xc26b(%rip), %rdi      # 0x2338e
movl $0x6, %esi
movl $0x1, %edx
callq 0x2120
jmp 0x17236
leaq 0xc249(%rip), %rax      # 0x23387
movq %rsi, %rdi
movq %rax, %rsi
movq %r13, %rdx
xorl %eax, %eax
callq 0x20b0
jmp 0x17236
testl $0x7e00, %ebp           # imm = 0x7E00
je 0x16d48
jmp 0x16fb7
leal -0x1(%rax), %edx
leaq 0xc35f(%rip), %rsi      # 0x234cd
xorl %eax, %eax
callq 0x20b0
jmp 0x17236
decl %r15d
leaq 0xc349(%rip), %rsi      # 0x234cd
movl %r15d, %edx
xorl %eax, %eax
callq 0x20b0
movq 0x8(%rsp), %r15
testl $0x3f00, %r15d          # imm = 0x3F00
je 0x171db
movq 0x78(%r14), %rcx
leaq 0xc1cf(%rip), %rdi      # 0x23376
movl $0x3, %esi
movl $0x1, %edx
callq 0x2120
movl %r15d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x171f7
movl $0xc, %eax
subl %edx, %eax
leaq 0xc2fb(%rip), %rsi      # 0x234d2
movl %eax, %edx
jmp 0x17200
testq %r13, %r13
je 0x17228
movq 0x78(%r14), %rdi
leaq 0xc195(%rip), %rsi      # 0x23380
movq %r13, %rdx
xorl %eax, %eax
callq 0x20b0
jmp 0x17228
decl %edx
leaq 0xc2cd(%rip), %rsi      # 0x234cd
xorl %eax, %eax
callq 0x20b0
testq %r13, %r13
je 0x17228
movq 0x78(%r14), %rdi
movl $0x1, %edx
movl %r13d, %ecx
shll %cl, %edx
leaq 0xc159(%rip), %rsi      # 0x2337a
xorl %eax, %eax
callq 0x20b0
movq 0x78(%r14), %rsi
movl $0x5d, %edi
callq 0x20a0
movq 0x78(%r14), %rcx
leaq 0xc242(%rip), %rdi      # 0x23483
movl $0x2, %esi
movl $0x1, %edx
callq 0x2120
testb $0x40, %bl
jne 0x1727e
testb %bl, %bl
js 0x17298
testl %ebx, %ebx
je 0x172ca
movq 0x78(%r14), %rdi
cmpl %ebx, 0x48(%r14)
jge 0x172f8
movl $0xc, %edx
subl %ebx, %edx
leaq 0xc259(%rip), %rsi      # 0x234d2
jmp 0x17302
movq 0x78(%r14), %rdi
leaq 0xc0e8(%rip), %rsi      # 0x23371
movq %r12, %rdx
xorl %eax, %eax
callq 0x20b0
jmp 0x173c3
movl %ebx, %r15d
movq 0x78(%r14), %rsi
andl $0x3f, %r15d
je 0x172e9
movl $0x5b, %edi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r15d
jle 0x1730e
movl $0xc, %edx
subl %r15d, %edx
leaq 0xc20a(%rip), %rsi      # 0x234d2
jmp 0x1731b
movq 0x78(%r14), %rcx
leaq 0xc0b9(%rip), %rdi      # 0x2338e
movl $0x6, %esi
movl $0x1, %edx
callq 0x2120
jmp 0x173c3
leaq 0xc097(%rip), %rax      # 0x23387
movq %rsi, %rdi
movq %rax, %rsi
jmp 0x17289
leal -0x1(%rbx), %edx
leaq 0xc1cb(%rip), %rsi      # 0x234cd
xorl %eax, %eax
callq 0x20b0
jmp 0x173c3
decl %r15d
leaq 0xc1b5(%rip), %rsi      # 0x234cd
movl %r15d, %edx
xorl %eax, %eax
callq 0x20b0
testl $0x3f00, %ebx           # imm = 0x3F00
je 0x17368
movq 0x78(%r14), %rcx
leaq 0xc041(%rip), %rdi      # 0x23376
movl $0x3, %esi
movl $0x1, %edx
callq 0x2120
movl %ebx, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x17384
movl $0xc, %eax
subl %edx, %eax
leaq 0xc16e(%rip), %rsi      # 0x234d2
movl %eax, %edx
jmp 0x1738d
testq %r12, %r12
je 0x173b5
movq 0x78(%r14), %rdi
leaq 0xc008(%rip), %rsi      # 0x23380
movq %r12, %rdx
xorl %eax, %eax
callq 0x20b0
jmp 0x173b5
decl %edx
leaq 0xc140(%rip), %rsi      # 0x234cd
xorl %eax, %eax
callq 0x20b0
testq %r12, %r12
je 0x173b5
movq 0x78(%r14), %rdi
movl $0x1, %edx
movl %r12d, %ecx
shll %cl, %edx
leaq 0xbfcc(%rip), %rsi      # 0x2337a
xorl %eax, %eax
callq 0x20b0
movq 0x78(%r14), %rsi
movl $0x5d, %edi
callq 0x20a0
movq 0x78(%r14), %rsi
movl $0xa, %edi
callq 0x20a0
movq 0x8(%rsp), %r10
leaq 0x8(%r13), %r9
movl $0x8d, %eax
cmpl %eax, %r10d
cmovneq %r13, %r9
leaq 0x8(%r12), %r13
cmpl %eax, %ebx
cmovneq %r12, %r13
movl %ebp, %eax
andl $0x100, %eax            # imm = 0x100
movl %eax, 0x70(%r14)
movl %ebp, %r12d
andl $0xffff80ff, %r12d      # imm = 0xFFFF80FF
movl %ebp, %ecx
andl $0xffff80f0, %ecx       # imm = 0xFFFF80F0
cmpl $0x20, %ecx
jne 0x17453
movl $0x0, 0x70(%r14)
testl %eax, %eax
je 0x17531
cmpl $0x40, %ebx
setge %al
cmpl %r10d, %ebx
setne %cl
orb %al, %cl
je 0x174cc
cmpl $0x26, %r12d
jne 0x174fa
xorl %r12d, %r12d
testb %bl, %bl
setns %r12b
addl $0x25, %r12d
jmp 0x174fa
testl $0x3e00, %ebp           # imm = 0x3E00
je 0x17463
movl $0x0, 0x74(%r14)
cmpl $0x32, %r12d
je 0x1759c
cmpl $0x31, %r12d
je 0x17494
xorl %r15d, %r15d
cmpl $0x30, %r12d
jne 0x1781a
btl $0x9, %ebp
jb 0x1772c
movq %r14, %rdi
movl $0x10, %esi
jmp 0x174ad
btl $0xe, %ebp
jae 0x174a5
cmpl $0x0, 0x74(%r14)
je 0x17923
movq %r14, %rdi
movl $0x18, %esi
movl %r10d, %edx
movq %r9, %rcx
movl %ebx, %r8d
movq %r13, %r9
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x17ed4
addl $-0x21, %r12d
xorl %r15d, %r15d
cmpl $0xc, %r12d
jae 0x1781a
movl $0xf0f, %eax            # imm = 0xF0F
btl %r12d, %eax
jae 0x1781a
movl %r12d, %eax
leaq 0xbc66(%rip), %rcx      # 0x2315c
movl (%rcx,%rax,4), %r12d
xorl %eax, %eax
testb %bl, %bl
setns %al
addl $0x2d, %eax
cmpl $0x2e, %r12d
cmovnel %r12d, %eax
xorl %ecx, %ecx
testb $0x40, %bl
sete %cl
movl $0x26, %edx
subl %ecx, %edx
cmpl $0x25, %eax
cmovnel %eax, %edx
movl $0x2e, %r12d
subl %ecx, %r12d
cmpl $0x2d, %edx
cmovnel %edx, %r12d
leal -0x8(%r12), %r15d
cmpl $0x28, %r12d
cmovll %r12d, %r15d
testb $0x40, %bl
jne 0x1757d
testb %bl, %bl
jns 0x176fa
cmpl $0x28, %r12d
jl 0x176fa
movl %ebx, %edx
andl $0x3f, %edx
je 0x176fa
testl $0x3f00, %ebx           # imm = 0x3F00
jne 0x176c2
testq %r13, %r13
jne 0x176c2
xorl %r13d, %r13d
jmp 0x176fa
leal -0x21(%r15), %eax
cmpl $0x5, %eax
ja 0x17543
leaq 0xbad3(%rip), %rcx      # 0x23060
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl %r13b, %r13d
jmp 0x17543
btl $0xe, %ebp
jae 0x175ad
cmpl $0x0, 0x74(%r14)
je 0x17944
testl %r10d, %r10d
je 0x17877
movq %r10, 0x8(%rsp)
testb $0x40, %bl
movq %r9, (%rsp)
je 0x175ee
movl $0xe, %ebx
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl $0x40, %ecx
movq %r13, %r8
callq 0x16afc
movl $0x0, %r13d
testl %eax, %eax
jne 0x17817
movq %r14, %rdi
movl $0x2, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r13, %r9
callq 0x15e07
testq %rax, %rax
je 0x17817
movw $0xbd0f, (%rax)         # imm = 0xBD0F
movq 0x8(%rsp), %rax
cmpl $0x40, %eax
movl $0xf, %r12d
cmovll %eax, %r12d
movl $0x0, 0x70(%r14)
xorl %r8d, %r8d
andl $0x100, %ebp            # imm = 0x100
sete %r8b
shll $0x6, %r8d
orq $0x3f, %r8
movq %r14, %rdi
movl %r12d, %esi
xorl %edx, %edx
movl $0x40, %ecx
callq 0x16afc
testl %eax, %eax
jne 0x17817
movl %ebp, 0x70(%r14)
cmpl $-0x1, 0x10a56(%rip)    # 0x280c0
jne 0x17687
movl $0x1, %eax
cpuid
movl %edx, 0x14(%rsp)
movl 0x14(%rsp), %eax
shrl $0xf, %eax
andl $0x1, %eax
movl %eax, 0x10a39(%rip)     # 0x280c0
cmpl $0x0, 0x10a32(%rip)     # 0x280c0
je 0x17a6b
movq %r14, %rdi
movl $0x2, %esi
movl %r12d, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movw $0x450f, (%rax)         # imm = 0x450F
jmp 0x17ac0
movq %r9, (%rsp)
movq %r10, %rbp
movq %r14, %rdi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r13, %r9
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x73, (%rax)
andl $0x8f, %ebx
xorl %r13d, %r13d
movq %rbp, %r10
movq (%rsp), %r9
addl $-0x20, %r15d
leaq 0xb973(%rip), %rax      # 0x23078
movslq (%rax,%r15,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r14, %rdi
movl %r10d, %esi
movq %r9, %rdx
movl %ebx, %ecx
movq %r13, %r8
movq %r10, %rbx
movq %r9, %r15
callq 0x16afc
jmp 0x17813
testl %r10d, %r10d
je 0x17965
movq %r9, %rbp
cmpl $0x3f, %r10d
jg 0x179dc
movq %r14, %rdi
movl %r10d, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r13, %r8
movq %r10, %rbx
callq 0x16afc
testl %eax, %eax
jne 0x17817
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
movq %rbp, %r9
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x1, %esi
movl %ebx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
jmp 0x179c3
movq %r14, %rdi
xorl %esi, %esi
jmp 0x177de
movq %r14, %rdi
xorl %esi, %esi
jmp 0x177b3
movq %r14, %rdi
movl $0x1, %esi
movl %r10d, %edx
movq %r9, %rcx
movl %ebx, %r8d
movq %r9, %r15
movq %r13, %r9
movq %r10, %rbx
callq 0x17b56
jmp 0x17813
movq %r14, %rdi
movl $0x1, %esi
jmp 0x177fc
movq %r14, %rdi
movl $0x1, %esi
movl %r10d, %edx
movq %r9, %rcx
movl %ebx, %r8d
movq %r9, %r15
movq %r13, %r9
movq %r10, %rbx
callq 0x17c65
jmp 0x17813
movq %r14, %rdi
xorl %esi, %esi
movl %r10d, %edx
movq %r9, %rcx
movl %ebx, %r8d
movq %r9, %r15
movq %r13, %r9
movq %r10, %rbx
callq 0x17d67
testl %eax, %eax
je 0x1782c
movl (%r14), %r15d
movl %r15d, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r15, %r9
xorl %r15d, %r15d
testb %bl, %bl
jns 0x1781a
cmpl $0x28, %r12d
jl 0x1781a
movq %rbx, %r8
movl %r8d, %edx
andl $0x3f, %edx
je 0x1781a
testq %r9, %r9
sete %al
testl $0x3f00, %r8d           # imm = 0x3F00
sete %cl
testb %al, %cl
jne 0x1781a
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x1, %esi
xorl %ecx, %ecx
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x73, (%rax)
jmp 0x1781a
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r13, %r8
callq 0x16afc
testl %eax, %eax
jne 0x17817
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %ecx, %ecx
btl $0x8, %ebp
setae %cl
shll $0x5, %ecx
orq $0x1f, %rcx
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x21, %esi
movl $0x40, %edx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
orb $0x28, (%rax)
jmp 0x1781a
movl %r13d, %r13d
jmp 0x17543
movzwl %r13w, %r13d
jmp 0x17543
movswq %r13w, %r13
jmp 0x17543
movsbq %r13b, %r13
jmp 0x17543
movslq %r13d, %r13
jmp 0x17543
movq %r14, %rdi
movq %r10, %r15
movq %r9, %r12
callq 0x17fee
movq %r12, %r9
movq %r15, %r10
testl %eax, %eax
jne 0x17817
jmp 0x174a5
movq %r14, %rdi
movq %r10, %r15
movq %r9, %r12
callq 0x17fee
movq %r12, %r9
movq %r15, %r10
testl %eax, %eax
jne 0x17817
jmp 0x175ad
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r13, %r8
callq 0x16afc
testl %eax, %eax
jne 0x17817
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x1, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $0xb, (%rax)
jmp 0x1781a
movq %r10, %r12
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r13, %r8
callq 0x16afc
testl %eax, %eax
jne 0x17817
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
movq %r14, %rdi
movl $0x1, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $0xb, (%rax)
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x1, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl %r12d, %r8d
movq %rbp, %r9
jmp 0x17b1a
movl $0x6, %esi
movq %r14, %rdi
callq 0x152be
testq %rax, %rax
je 0x17817
movb $0x5, (%rax)
addq $0x5, 0x60(%r14)
movl $0x10ef0, %edx          # imm = 0x10EF0
movl %r12d, %ecx
shrq %cl, %rdx
movw $0x374, 0x1(%rax)       # imm = 0x374
movslq %r12d, %rcx
shlb $0x2, %dl
andb $0x4, %dl
orb $0x48, %dl
movb %dl, 0x3(%rax)
movb $-0x75, 0x4(%rax)
leaq 0xb66c(%rip), %rdx      # 0x23120
movb (%rcx,%rdx), %cl
shlb $0x3, %cl
orb $-0x3e, %cl
movb %cl, 0x5(%rax)
xorl %ecx, %ecx
testl %ebp, %ebp
sete %cl
shll $0x5, %ecx
orq $0x1f, %rcx
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x11, %esi
movl $0x40, %edx
movl %r12d, %r8d
xorl %r9d, %r9d
callq 0x15e07
testq %rax, %rax
je 0x17817
orb $0x30, 0x1(%rax)
movq 0x8(%rsp), %r8
testb %r8b, %r8b
movq (%rsp), %r9
jns 0x1781a
xorl %r15d, %r15d
movq %r14, %rdi
movl $0x1, %esi
movl $0xf, %edx
xorl %ecx, %ecx
callq 0x15e07
testq %rax, %rax
je 0x17817
movb $-0x77, (%rax)
jmp 0x1781a
leaq 0xb738(%rip), %rdi      # 0x2326f
movl $0x411, %esi            # imm = 0x411
jmp 0x17b4a
leaq 0xb72a(%rip), %rdi      # 0x2326f
movl $0x40d, %esi            # imm = 0x40D
xorl %eax, %eax
callq 0x2080
callq 0x2040