// File: /workspace/github_c_makefile_star2_O2/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 $0x28, %rsp
movl (%rdi), %r12d
testl %r12d, %r12d
jne 0x15a77
movl %r8d, %ebx
movl %edx, %r10d
movl %esi, %ebp
movq %rdi, %r14
cmpl $0x0, 0x84(%rdi)
je 0x14eea
andl $0x0, 0x84(%r14)
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
jmp 0x155f2
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
leal -0x20(%r13), %eax
cmpl $0x13, %eax
jae 0x15cdd
testw $0x3e00, %bp            # imm = 0x3E00
sete %sil
btl $0xe, %ebp
setae %dl
orb %sil, %dl
je 0x15152
cmpl $0x32, %r13d
ja 0x15234
movl %r13d, %esi
movabsq $0xa1a100000000, %rdx   # imm = 0xA1A100000000
btq %rsi, %rdx
jae 0x15133
testw $0x7f00, %bp            # imm = 0x7F00
jne 0x15152
movl 0x48(%r14), %r11d
cmpl $-0x1, %r11d
je 0x15409
movl 0x4c(%r14), %edx
cmpl $-0x1, %edx
je 0x15409
testl %ebx, %ebx
setg %sil
cmpl %ebx, %r11d
setge %dil
pushq $0xc
popq %r15
testb %dil, %sil
movq %r9, 0x8(%rsp)
jne 0x14f97
movl %r15d, %esi
subl %edx, %esi
cmpl %ebx, %esi
setge %dil
cmpl $0xd, %ebx
setge %r8b
orb %dil, %r8b
jne 0x15183
testq %r9, %r9
jne 0x15409
testl %r10d, %r10d
je 0x14fd1
setg %sil
cmpl %r10d, %r11d
setge %dil
testb %dil, %sil
jne 0x14fd1
movl %r15d, %esi
subl %edx, %esi
cmpl %r10d, %esi
setge %dl
cmpl $0xd, %r10d
setge %dil
orb %dl, %dil
jne 0x151b6
testq %rcx, %rcx
jne 0x15c0a
movl %ebp, %edx
andl $0xffff80f8, %edx       # imm = 0xFFFF80F8
cmpl $0x28, %edx
jne 0x15044
movl %ebx, %edx
andl $0xbf, %edx
cmpl $0x8d, %edx
je 0x15ccf
movl %r10d, %edx
andl $0xbf, %edx
cmpl $0x8d, %edx
je 0x15ccf
movl %ebx, %edi
andl $0x3f, %edi
testb %bl, %bl
setns %dl
testl %edi, %edi
sete %sil
orb %dl, %sil
jne 0x15044
movl %r10d, %edx
andl $0x3f, %edx
cmpl %edi, %edx
je 0x15ccf
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
cmpl %edi, %edx
je 0x15ccf
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x155f2
movq %rcx, 0x10(%rsp)
btl $0x8, %ebp
leaq 0x9397(%rip), %rsi      # 0x1e3f8
leaq 0xc424(%rip), %rdx      # 0x2148c
cmovaeq %rsi, %rdx
btl $0x9, %ebp
leaq 0xc48a(%rip), %r8       # 0x21501
cmovaeq %rsi, %r8
btl $0xa, %ebp
leaq 0xc47e(%rip), %r9       # 0x21504
cmovaeq %rsi, %r9
btl $0xb, %ebp
movq %r10, 0x18(%rsp)
leaq 0xc46d(%rip), %r10      # 0x21507
cmovaeq %rsi, %r10
btl $0xc, %ebp
leaq 0xc461(%rip), %r11      # 0x2150a
cmovaeq %rsi, %r11
btl $0xd, %ebp
leaq 0xc455(%rip), %r12      # 0x2150d
cmovaeq %rsi, %r12
btl $0xe, %ebp
movl %eax, %eax
leaq 0x14ae7(%rip), %rcx     # 0x29bb0
movq (%rcx,%rax,8), %rcx
leaq 0xc43c(%rip), %r15      # 0x21510
cmovaeq %rsi, %r15
leaq 0xc40e(%rip), %rsi      # 0x214ed
xorl %eax, %eax
pushq %r15
pushq %r12
pushq %r11
pushq %r10
callq 0x20c0
movq 0x38(%rsp), %rax
addq $0x20, %rsp
testb $0x40, %al
jne 0x15163
testb %al, %al
movq 0x10(%rsp), %rdx
js 0x151e1
testl %eax, %eax
pushq $0xc
popq %r15
je 0x15325
movq 0x78(%r14), %rdi
cmpl %eax, 0x48(%r14)
jge 0x15359
movl %r15d, %edx
subl %eax, %edx
leaq 0xc434(%rip), %rsi      # 0x21562
jmp 0x15363
movabsq $0x5000000000000, %rdx  # imm = 0x5000000000000
btq %rsi, %rdx
jae 0x1521e
testw $0x3c00, %bp            # imm = 0x3C00
je 0x14f46
leaq 0xc1a6(%rip), %rdi      # 0x212ff
movl $0x40e, %esi            # imm = 0x40E
jmp 0x15ce9
movq 0x78(%r14), %rdi
leaq 0xc293(%rip), %rsi      # 0x21401
movq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0x20c0
pushq $0xc
popq %r15
jmp 0x1545b
cmpl $0x40, %ebx
je 0x14fa0
cmpl $0x8d, %ebx
jne 0x15244
testq %r9, %r9
js 0x15409
movslq 0x80(%r14), %rsi
cmpq %r9, %rsi
jg 0x14fa0
jmp 0x15409
cmpl $0x8d, %r10d
jne 0x152b5
testq %rcx, %rcx
js 0x15c0a
movslq 0x80(%r14), %rdx
cmpq %rcx, %rdx
jg 0x14fda
jmp 0x15c0a
movl %eax, %r12d
movq 0x78(%r14), %rsi
andl $0x3f, %r12d
pushq $0xc
popq %r15
je 0x15340
pushq $0x5b
popq %rdi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r12d
jle 0x1536f
subl %r12d, %r15d
leaq 0xc34c(%rip), %rsi      # 0x21562
movl %r15d, %edx
jmp 0x1537c
cmpq $0x31, %rsi
jne 0x15234
testw $0x2c00, %bp            # imm = 0x2C00
je 0x14f46
jmp 0x15152
testw $0x7e00, %bp            # imm = 0x7E00
je 0x14f46
jmp 0x15152
testb %bl, %bl
jns 0x15409
movl %ebx, %edi
andl $0x3f, %edi
je 0x153f6
cmpl %r11d, %edi
jle 0x1526d
cmpl $0xc, %edi
ja 0x15409
cmpl %esi, %edi
jle 0x15409
testw $0x3f00, %bx            # imm = 0x3F00
je 0x153fd
movl %ebx, %edi
shrl $0x8, %edi
andl $0x3f, %edi
setne %r8b
cmpl %r11d, %edi
setle %r9b
testb %r9b, %r8b
jne 0x152a1
cmpl $0xc, %edi
ja 0x15409
cmpl %esi, %edi
jle 0x15409
movq 0x8(%rsp), %r9
cmpq $0x4, %r9
jb 0x153fd
jmp 0x15409
testb %r10b, %r10b
jns 0x15c0a
movl %r10d, %edx
andl $0x3f, %edx
je 0x15bf5
cmpl %r11d, %edx
jle 0x152e0
cmpl $0xc, %edx
ja 0x15c0a
cmpl %esi, %edx
jle 0x15c0a
testw $0x3f00, %r10w          # imm = 0x3F00
je 0x15bfd
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
setne %dil
cmpl %r11d, %edx
setle %r8b
testb %r8b, %dil
jne 0x15316
cmpl $0xc, %edx
ja 0x15c0a
cmpl %esi, %edx
jle 0x15c0a
cmpq $0x4, %rcx
jb 0x15bfd
jmp 0x15c0a
movq 0x78(%r14), %rcx
leaq 0xc0ee(%rip), %rdi      # 0x2141e
pushq $0x6
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
jmp 0x1545b
leaq 0xc0d0(%rip), %rax      # 0x21417
movq %rsi, %rdi
movq %rax, %rsi
xorl %eax, %eax
callq 0x20c0
jmp 0x1545b
leal -0x1(%rax), %edx
leaq 0xc1fa(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
jmp 0x1545b
decl %r12d
leaq 0xc1e4(%rip), %rsi      # 0x2155d
movl %r12d, %edx
xorl %eax, %eax
callq 0x20c0
movq 0x18(%rsp), %r15
testw $0x3f00, %r15w          # imm = 0x3F00
je 0x153d4
movq 0x78(%r14), %rcx
leaq 0xc06b(%rip), %rdi      # 0x21406
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movl %r15d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x1541a
pushq $0xc
popq %r15
movl %r15d, %eax
subl %edx, %eax
leaq 0xc199(%rip), %rsi      # 0x21562
movl %eax, %edx
xorl %eax, %eax
callq 0x20c0
jmp 0x1542e
movq 0x10(%rsp), %rdx
testq %rdx, %rdx
pushq $0xc
popq %r15
je 0x1544f
movq 0x78(%r14), %rdi
leaq 0xc023(%rip), %rsi      # 0x21410
xorl %eax, %eax
callq 0x20c0
jmp 0x1544f
testw $0x3f00, %bx            # imm = 0x3F00
jne 0x15409
cmpl $0x4000, %ebx           # imm = 0x4000
jb 0x14fa0
leaq 0xbeef(%rip), %rdi      # 0x212ff
movl $0x40f, %esi            # imm = 0x40F
jmp 0x15ce9
decl %edx
leaq 0xc13a(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
pushq $0xc
popq %r15
movq 0x10(%rsp), %rcx
testq %rcx, %rcx
je 0x1544f
movq 0x78(%r14), %rdi
pushq $0x1
popq %rdx
shll %cl, %edx
leaq 0xbfc2(%rip), %rsi      # 0x2140a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%r14), %rsi
pushq $0x5d
popq %rdi
callq 0x20a0
movq 0x78(%r14), %rcx
leaq 0xc0ad(%rip), %rdi      # 0x21513
pushq $0x2
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
testb $0x40, %bl
jne 0x154a0
testb %bl, %bl
movq 0x8(%rsp), %rdx
js 0x154bc
testl %ebx, %ebx
je 0x154ea
movq 0x78(%r14), %rdi
cmpl %ebx, 0x48(%r14)
jge 0x15514
subl %ebx, %r15d
leaq 0xc0c7(%rip), %rsi      # 0x21562
movl %r15d, %edx
jmp 0x1551e
movq 0x78(%r14), %rdi
leaq 0xbf56(%rip), %rsi      # 0x21401
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x155d7
movl %ebx, %r12d
movq 0x78(%r14), %rsi
andl $0x3f, %r12d
je 0x15505
pushq $0x5b
popq %rdi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r12d
jle 0x1552a
movl %r15d, %edx
subl %r12d, %edx
leaq 0xc07a(%rip), %rsi      # 0x21562
jmp 0x15537
movq 0x78(%r14), %rcx
leaq 0xbf29(%rip), %rdi      # 0x2141e
pushq $0x6
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
jmp 0x155d7
leaq 0xbf0b(%rip), %rax      # 0x21417
movq %rsi, %rdi
movq %rax, %rsi
jmp 0x154b0
leal -0x1(%rbx), %edx
leaq 0xc03f(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
jmp 0x155d7
decl %r12d
leaq 0xc029(%rip), %rsi      # 0x2155d
movl %r12d, %edx
xorl %eax, %eax
callq 0x20c0
testw $0x3f00, %bx            # imm = 0x3F00
je 0x1557c
movq 0x78(%r14), %rcx
leaq 0xbeb6(%rip), %rdi      # 0x21406
pushq $0x3
popq %rsi
pushq $0x1
popq %rdx
callq 0x2130
movl %ebx, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x1559a
subl %edx, %r15d
leaq 0xbfeb(%rip), %rsi      # 0x21562
movl %r15d, %edx
jmp 0x155a3
movq 0x8(%rsp), %rdx
testq %rdx, %rdx
je 0x155cb
movq 0x78(%r14), %rdi
leaq 0xbe7f(%rip), %rsi      # 0x21410
xorl %eax, %eax
callq 0x20c0
jmp 0x155cb
decl %edx
leaq 0xbfba(%rip), %rsi      # 0x2155d
xorl %eax, %eax
callq 0x20c0
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
je 0x155cb
movq 0x78(%r14), %rdi
pushq $0x1
popq %rdx
shll %cl, %edx
leaq 0xbe46(%rip), %rsi      # 0x2140a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%r14), %rsi
pushq $0x5d
popq %rdi
callq 0x20a0
movq 0x78(%r14), %rsi
pushq $0xa
popq %rdi
callq 0x20a0
movq 0x18(%rsp), %r10
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %r9
leaq 0x8(%rcx), %r11
movl $0x8d, %eax
cmpl %eax, %r10d
cmovneq %rcx, %r11
leaq 0x8(%r9), %r15
cmpl %eax, %ebx
cmovneq %r9, %r15
movl %ebp, %r12d
andl $0x100, %r12d           # imm = 0x100
movl %r12d, 0x70(%r14)
movl %ebp, %eax
andl $0xffff80f0, %eax       # imm = 0xFFFF80F0
cmpl $0x20, %eax
jne 0x1563a
andl $0x0, 0x70(%r14)
testl %r12d, %r12d
jne 0x15671
movl %ebx, %eax
andl $0x40, %eax
jmp 0x1583d
testw $0x3e00, %bp            # imm = 0x3E00
je 0x15646
andl $0x0, 0x74(%r14)
cmpl $0x32, %r13d
je 0x156d7
cmpl $0x31, %r13d
je 0x156a1
xorl %r12d, %r12d
cmpl $0x30, %r13d
jne 0x15a77
btl $0x9, %ebp
jb 0x15878
pushq $0x10
jmp 0x156b4
cmpl $0x40, %ebx
setge %al
cmpl %r10d, %ebx
setne %cl
orb %al, %cl
je 0x157da
cmpl $0x26, %r13d
jne 0x15808
xorl %r13d, %r13d
testb %bl, %bl
setns %r13b
addl $0x25, %r13d
jmp 0x15808
btl $0xe, %ebp
jae 0x156b2
cmpl $0x0, 0x74(%r14)
je 0x15ad1
pushq $0x18
popq %rsi
movq %r14, %rdi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x16050
btl $0xe, %ebp
jae 0x156e8
cmpl $0x0, 0x74(%r14)
je 0x15aee
testl %r10d, %r10d
je 0x158e5
movq %r10, %r13
testb $0x40, %bl
movq %r11, 0x8(%rsp)
je 0x15721
pushq $0xe
popq %rbx
pushq $0x40
popq %rcx
movq %r14, %rdi
movl %ebx, %esi
xorl %edx, %edx
movq %r15, %r8
callq 0x14d14
movl $0x0, %r15d
testl %eax, %eax
jne 0x15a74
pushq $0x2
popq %rsi
pushq $0xe
popq %rdx
movq %r14, %rdi
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r15, %r9
callq 0x14061
testq %rax, %rax
je 0x15a74
movw $0xbd0f, (%rax)         # imm = 0xBD0F
movq %r13, %rax
cmpl $0x40, %eax
pushq $0xf
popq %rbp
cmovll %eax, %ebp
andl $0x0, 0x70(%r14)
xorl %r8d, %r8d
testl %r12d, %r12d
sete %r8b
shll $0x6, %r8d
orq $0x3f, %r8
pushq $0x40
popq %rcx
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x14d14
testl %eax, %eax
jne 0x15a74
movl %r12d, 0x70(%r14)
movl 0x14947(%rip), %eax     # 0x2a0d0
cmpl $-0x1, %eax
jne 0x157a9
movl $0x1, %eax
cpuid
movl %edx, 0x24(%rsp)
movl 0x24(%rsp), %eax
shrl $0xf, %eax
andl $0x1, %eax
movl %eax, 0x14927(%rip)     # 0x2a0d0
testl %eax, %eax
je 0x15c1b
pushq $0x2
popq %rsi
pushq $0xe
popq %r8
movq %r14, %rdi
movl %ebp, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movw $0x450f, (%rax)         # imm = 0x450F
jmp 0x15c6d
addl $-0x21, %r13d
xorl %r12d, %r12d
cmpl $0xc, %r13d
jae 0x15a77
movl $0xf0f, %eax            # imm = 0xF0F
btl %r13d, %eax
jae 0x15a77
movl %r13d, %eax
leaq 0xb9e8(%rip), %rcx      # 0x211ec
movl (%rcx,%rax,4), %r13d
xorl %ecx, %ecx
testb %bl, %bl
setns %cl
addl $0x2d, %ecx
cmpl $0x2e, %r13d
cmovnel %r13d, %ecx
xorl %edx, %edx
movl %ebx, %eax
andl $0x40, %eax
sete %dl
pushq $0x26
popq %rsi
subl %edx, %esi
cmpl $0x25, %ecx
cmovnel %ecx, %esi
pushq $0x2e
popq %r13
subl %edx, %r13d
cmpl $0x2d, %esi
cmovnel %esi, %r13d
leal -0x8(%r13), %r12d
cmpl $0x28, %r13d
cmovll %r13d, %r12d
testl %eax, %eax
je 0x15977
leal -0x21(%r12), %eax
cmpl $0x5, %eax
ja 0x15977
leaq 0xb88a(%rip), %rcx      # 0x210f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl %r15b, %r15d
jmp 0x15977
testl %r10d, %r10d
je 0x15b0f
cmpl $0x3f, %r10d
jg 0x15b79
movq %rcx, %r12
movq %r14, %rdi
movl %r10d, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
movq %r10, %rbx
callq 0x14d14
testl %eax, %eax
jne 0x15a74
pushq $0x1
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r12, %r9
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r12d, %r12d
pushq $0x1
popq %rsi
movq %r14, %rdi
movl %ebx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
jmp 0x15b60
pushq $0xe
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x14d14
testl %eax, %eax
jne 0x15a74
pushq $0x1
popq %rsi
pushq $0xe
popq %r8
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %ecx, %ecx
testl %r12d, %r12d
sete %cl
shll $0x5, %ecx
orq $0x1f, %rcx
xorl %r12d, %r12d
pushq $0x21
popq %rsi
pushq $0x40
popq %rdx
pushq $0xe
popq %r8
movq %r14, %rdi
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
orb $0x28, (%rax)
jmp 0x15a77
movl %r15d, %r15d
jmp 0x15977
movzwl %r15w, %r15d
jmp 0x15977
movswq %r15w, %r15
jmp 0x15977
movsbq %r15b, %r15
jmp 0x15977
movslq %r15d, %r15
testb %bl, %bl
jns 0x159d1
cmpl $0x28, %r13d
jl 0x159d1
movl %ebx, %edx
andl $0x3f, %edx
je 0x159d1
testw $0x3f00, %bx            # imm = 0x3F00
jne 0x15999
testq %r15, %r15
jne 0x15999
xorl %r15d, %r15d
jmp 0x159d1
movq %r11, 0x8(%rsp)
movq %r10, %rbp
pushq $0x1
popq %rsi
movq %r14, %rdi
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r15, %r9
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x73, (%rax)
andl $0x8f, %ebx
xorl %r15d, %r15d
movq %rbp, %r10
movq 0x8(%rsp), %r11
addl $-0x20, %r12d
leaq 0xb72c(%rip), %rax      # 0x21108
movslq (%rax,%r12,4), %rcx
addq %rax, %rcx
jmpq *%rcx
movq %r14, %rdi
movl %r10d, %esi
movq %r11, %rdx
movl %ebx, %ecx
movq %r15, %r8
movq %r10, %rbx
movq %r11, %r15
callq 0x14d14
jmp 0x15a70
movq %r14, %rdi
xorl %esi, %esi
jmp 0x15a3b
movq %r14, %rdi
xorl %esi, %esi
jmp 0x15a14
pushq $0x1
popq %rsi
movq %r14, %rdi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
movq %r10, %rbx
movq %r11, %r15
callq 0x15cf5
jmp 0x15a70
pushq $0x1
popq %rsi
movq %r14, %rdi
jmp 0x15a59
pushq $0x1
popq %rsi
movq %r14, %rdi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
movq %r10, %rbx
movq %r11, %r15
callq 0x15dfe
jmp 0x15a70
movq %r14, %rdi
xorl %esi, %esi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
movq %r10, %rbx
movq %r11, %r15
callq 0x15efa
testl %eax, %eax
je 0x15a89
movl (%r14), %r12d
movl %r12d, %eax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
xorl %r12d, %r12d
testb %bl, %bl
jns 0x15a77
cmpl $0x28, %r13d
jl 0x15a77
movq %rbx, %r8
movl %r8d, %edx
andl $0x3f, %edx
je 0x15a77
testq %r15, %r15
sete %al
testw $0x3f00, %r8w           # imm = 0x3F00
sete %cl
testb %al, %cl
jne 0x15a77
movq %r15, %r9
xorl %r12d, %r12d
pushq $0x1
popq %rsi
movq %r14, %rdi
xorl %ecx, %ecx
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x73, (%rax)
jmp 0x15a77
movq %r14, %rdi
movq %r10, %r12
movq %r11, %r13
callq 0x1614e
movq %r13, %r11
movq %r12, %r10
testl %eax, %eax
jne 0x15a74
jmp 0x156b2
movq %r14, %rdi
movq %r10, %r13
movq %r11, %rbp
callq 0x1614e
movq %rbp, %r11
movq %r13, %r10
testl %eax, %eax
jne 0x15a74
jmp 0x156e8
pushq $0xe
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x14d14
testl %eax, %eax
jne 0x15a74
pushq $0x1
popq %rsi
pushq $0xe
popq %r8
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r12d, %r12d
pushq $0x1
popq %rsi
pushq $0xe
popq %rdx
movq %r14, %rdi
xorl %ecx, %ecx
movl %edx, %r8d
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $0xb, (%rax)
jmp 0x15a77
movq %r11, %rbp
movq %r10, %r13
pushq $0xe
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x14d14
testl %eax, %eax
jne 0x15a74
pushq $0x1
popq %rsi
pushq $0xe
popq %r8
movq %r14, %rdi
xorl %edx, %edx
xorl %ecx, %ecx
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r12d, %r12d
pushq $0x1
popq %rsi
pushq $0xe
popq %rdx
movq %r14, %rdi
xorl %ecx, %ecx
movl %edx, %r8d
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
movb $0xb, (%rax)
pushq $0xe
popq %rcx
movq %r14, %rdi
movl %r13d, %esi
movq %rbp, %rdx
jmp 0x15cba
testw $0x3f00, %r10w          # imm = 0x3F00
jne 0x15c0a
cmpl $0x4000, %r10d          # imm = 0x4000
jb 0x14fda
leaq 0xb6ee(%rip), %rdi      # 0x212ff
movl $0x410, %esi            # imm = 0x410
jmp 0x15ce9
pushq $0x6
popq %rsi
movq %r14, %rdi
callq 0x1354f
testq %rax, %rax
je 0x15a74
movb $0x5, (%rax)
addq $0x5, 0x60(%r14)
movl $0x10ef0, %edx          # imm = 0x10EF0
movl %ebp, %ecx
shrq %cl, %rdx
movw $0x374, 0x1(%rax)       # imm = 0x374
movslq %ebp, %rcx
shlb $0x2, %dl
andb $0x4, %dl
orb $0x48, %dl
movb %dl, 0x3(%rax)
movb $-0x75, 0x4(%rax)
leaq 0xb54f(%rip), %rdx      # 0x211b0
movb (%rcx,%rdx), %cl
shlb $0x3, %cl
orb $-0x3e, %cl
movb %cl, 0x5(%rax)
xorl %ecx, %ecx
testl %r12d, %r12d
sete %cl
shll $0x5, %ecx
orq $0x1f, %rcx
xorl %r12d, %r12d
pushq $0x11
popq %rsi
pushq $0x40
popq %rdx
movq %r14, %rdi
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x14061
testq %rax, %rax
je 0x15a74
orb $0x30, 0x1(%rax)
movq %r13, %rsi
testb %sil, %sil
movq 0x8(%rsp), %rdx
jns 0x15a77
xorl %r12d, %r12d
pushq $0xf
popq %rcx
movq %r14, %rdi
xorl %r8d, %r8d
callq 0x14d14
testl %eax, %eax
jne 0x15a74
jmp 0x15a77
leaq 0xb629(%rip), %rdi      # 0x212ff
movl $0x411, %esi            # imm = 0x411
jmp 0x15ce9
leaq 0xb61b(%rip), %rdi      # 0x212ff
movl $0x40d, %esi            # imm = 0x40D
xorl %eax, %eax
callq 0x2080
callq 0x2040