// File: /workspace/github_c_makefile_star2_O3/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 0x178b5
movl %r8d, %ebx
movl %edx, %r10d
movl %esi, %ebp
movq %rdi, %r14
cmpl $0x0, 0x84(%rdi)
je 0x16cd3
movl $0x0, 0x84(%r14)
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
jmp 0x173f0
movl %ebp, %r13d
andl $0xffff80ff, %r13d      # imm = 0xFFFF80FF
leal -0x20(%r13), %eax
cmpl $0x13, %eax
jae 0x17b52
testl $0x3e00, %ebp           # imm = 0x3E00
sete %sil
btl $0xe, %ebp
setae %dl
orb %sil, %dl
je 0x16f3c
cmpl $0x32, %r13d
ja 0x1701b
movl %r13d, %esi
movabsq $0xa1a100000000, %rdx   # imm = 0xA1A100000000
btq %rsi, %rdx
jae 0x16f1c
testl $0x7f00, %ebp           # imm = 0x7F00
jne 0x16f3c
movl 0x48(%r14), %r11d
cmpl $-0x1, %r11d
je 0x171e9
movl 0x4c(%r14), %edx
cmpl $-0x1, %edx
je 0x171e9
testl %ebx, %ebx
setg %sil
cmpl %ebx, %r11d
setge %dil
testb %dil, %sil
movq %r9, 0x8(%rsp)
jne 0x16d80
movl $0xc, %esi
subl %edx, %esi
cmpl %ebx, %esi
setge %dil
cmpl $0xd, %ebx
setge %r8b
orb %dil, %r8b
jne 0x16f69
testq %r9, %r9
jne 0x171e9
testl %r10d, %r10d
je 0x16dbc
setg %sil
cmpl %r10d, %r11d
setge %dil
testb %dil, %sil
jne 0x16dbc
movl $0xc, %esi
subl %edx, %esi
cmpl %r10d, %esi
setge %dl
cmpl $0xd, %r10d
setge %dil
orb %dl, %dil
jne 0x16f9c
testq %rcx, %rcx
jne 0x17a6f
movl %ebp, %edx
andl $0xffff80f8, %edx       # imm = 0xFFFF80F8
cmpl $0x28, %edx
jne 0x16e2f
movl %ebx, %edx
andl $0xbf, %edx
cmpl $0x8d, %edx
je 0x17b44
movl %r10d, %edx
andl $0xbf, %edx
cmpl $0x8d, %edx
je 0x17b44
movl %ebx, %edi
andl $0x3f, %edi
testb %bl, %bl
setns %dl
testl %edi, %edi
sete %sil
orb %dl, %sil
jne 0x16e2f
movl %r10d, %edx
andl $0x3f, %edx
cmpl %edi, %edx
je 0x17b44
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
cmpl %edi, %edx
je 0x17b44
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x173f0
movq %rcx, 0x10(%rsp)
btl $0x8, %ebp
leaq 0x95ec(%rip), %rsi      # 0x20438
leaq 0xc679(%rip), %rdx      # 0x234cc
cmovaeq %rsi, %rdx
btl $0x9, %ebp
leaq 0xc6df(%rip), %r8       # 0x23541
cmovaeq %rsi, %r8
btl $0xa, %ebp
leaq 0xc6d3(%rip), %r9       # 0x23544
cmovaeq %rsi, %r9
btl $0xb, %ebp
movq %r10, 0x18(%rsp)
leaq 0xc6c2(%rip), %r10      # 0x23547
cmovaeq %rsi, %r10
btl $0xc, %ebp
leaq 0xc6b6(%rip), %r11      # 0x2354a
cmovaeq %rsi, %r11
btl $0xd, %ebp
leaq 0xc6aa(%rip), %r15      # 0x2354d
cmovaeq %rsi, %r15
btl $0xe, %ebp
movl %eax, %eax
leaq 0x10cfc(%rip), %rcx     # 0x27bb0
movq (%rcx,%rax,8), %rcx
leaq 0xc691(%rip), %r12      # 0x23550
cmovaeq %rsi, %r12
leaq 0xc663(%rip), %rsi      # 0x2352d
xorl %eax, %eax
pushq %r12
pushq %r15
pushq %r11
pushq %r10
callq 0x20c0
movq 0x38(%rsp), %rax
addq $0x20, %rsp
testb $0x40, %al
jne 0x16f4d
testb %al, %al
movq 0x10(%rsp), %rdx
js 0x16fc7
testl %eax, %eax
je 0x1710f
movq 0x78(%r14), %rdi
cmpl %eax, 0x48(%r14)
jge 0x17140
movl $0xc, %edx
subl %eax, %edx
leaq 0xc68b(%rip), %rsi      # 0x235a2
jmp 0x1714a
movabsq $0x5000000000000, %rdx  # imm = 0x5000000000000
btq %rsi, %rdx
jae 0x17004
testl $0x3c00, %ebp           # imm = 0x3C00
je 0x16d31
leaq 0xc3fc(%rip), %rdi      # 0x2333f
movl $0x40e, %esi            # imm = 0x40E
jmp 0x17b5e
movq 0x78(%r14), %rdi
leaq 0xc4e9(%rip), %rsi      # 0x23441
movq 0x10(%rsp), %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x1723b
cmpl $0x40, %ebx
je 0x16d89
cmpl $0x8d, %ebx
jne 0x1702c
testq %r9, %r9
js 0x171e9
movslq 0x80(%r14), %rsi
cmpq %r9, %rsi
jg 0x16d89
jmp 0x171e9
cmpl $0x8d, %r10d
jne 0x1709e
testq %rcx, %rcx
js 0x17a6f
movslq 0x80(%r14), %rdx
cmpq %rcx, %rdx
jg 0x16dc5
jmp 0x17a6f
movl %eax, %r15d
movq 0x78(%r14), %rsi
andl $0x3f, %r15d
je 0x1712e
movl $0x5b, %edi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r15d
jle 0x17156
movl $0xc, %edx
subl %r15d, %edx
leaq 0xc5a3(%rip), %rsi      # 0x235a2
jmp 0x17163
cmpq $0x31, %rsi
jne 0x1701b
testl $0x2c00, %ebp           # imm = 0x2C00
je 0x16d31
jmp 0x16f3c
testl $0x7e00, %ebp           # imm = 0x7E00
je 0x16d31
jmp 0x16f3c
testb %bl, %bl
jns 0x171e9
movl %ebx, %edi
andl $0x3f, %edi
je 0x171d5
cmpl %r11d, %edi
jle 0x17055
cmpl $0xc, %edi
ja 0x171e9
cmpl %esi, %edi
jle 0x171e9
testl $0x3f00, %ebx           # imm = 0x3F00
je 0x171dd
movl %ebx, %edi
shrl $0x8, %edi
andl $0x3f, %edi
setne %r8b
cmpl %r11d, %edi
setle %r9b
testb %r9b, %r8b
jne 0x1708a
cmpl $0xc, %edi
ja 0x171e9
cmpl %esi, %edi
jle 0x171e9
movq 0x8(%rsp), %r9
cmpq $0x4, %r9
jb 0x171dd
jmp 0x171e9
testb %r10b, %r10b
jns 0x17a6f
movl %r10d, %edx
andl $0x3f, %edx
je 0x17a59
cmpl %r11d, %edx
jle 0x170c9
cmpl $0xc, %edx
ja 0x17a6f
cmpl %esi, %edx
jle 0x17a6f
testl $0x3f00, %r10d          # imm = 0x3F00
je 0x17a62
movl %r10d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
setne %dil
cmpl %r11d, %edx
setle %r8b
testb %r8b, %dil
jne 0x17100
cmpl $0xc, %edx
ja 0x17a6f
cmpl %esi, %edx
jle 0x17a6f
cmpq $0x4, %rcx
jb 0x17a62
jmp 0x17a6f
movq 0x78(%r14), %rcx
leaq 0xc344(%rip), %rdi      # 0x2345e
movl $0x6, %esi
movl $0x1, %edx
callq 0x2130
jmp 0x1723b
leaq 0xc322(%rip), %rax      # 0x23457
movq %rsi, %rdi
movq %rax, %rsi
jmp 0x16f5d
leal -0x1(%rax), %edx
leaq 0xc453(%rip), %rsi      # 0x2359d
xorl %eax, %eax
callq 0x20c0
jmp 0x1723b
decl %r15d
leaq 0xc43d(%rip), %rsi      # 0x2359d
movl %r15d, %edx
xorl %eax, %eax
callq 0x20c0
movq 0x18(%rsp), %r15
testl $0x3f00, %r15d          # imm = 0x3F00
je 0x171b7
movq 0x78(%r14), %rcx
leaq 0xc2c3(%rip), %rdi      # 0x23446
movl $0x3, %esi
movl $0x1, %edx
callq 0x2130
movl %r15d, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x171fa
movl $0xc, %eax
subl %edx, %eax
leaq 0xc3ef(%rip), %rsi      # 0x235a2
movl %eax, %edx
jmp 0x17203
movq 0x10(%rsp), %rdx
testq %rdx, %rdx
je 0x1722d
movq 0x78(%r14), %rdi
leaq 0xc284(%rip), %rsi      # 0x23450
xorl %eax, %eax
callq 0x20c0
jmp 0x1722d
testl $0x3f00, %ebx           # imm = 0x3F00
jne 0x171e9
cmpl $0x4000, %ebx           # imm = 0x4000
jb 0x16d89
leaq 0xc14f(%rip), %rdi      # 0x2333f
movl $0x40f, %esi            # imm = 0x40F
jmp 0x17b5e
decl %edx
leaq 0xc39a(%rip), %rsi      # 0x2359d
xorl %eax, %eax
callq 0x20c0
movq 0x10(%rsp), %rcx
testq %rcx, %rcx
je 0x1722d
movq 0x78(%r14), %rdi
movl $0x1, %edx
shll %cl, %edx
leaq 0xc224(%rip), %rsi      # 0x2344a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%r14), %rsi
movl $0x5d, %edi
callq 0x20a0
movq 0x78(%r14), %rcx
leaq 0xc30d(%rip), %rdi      # 0x23553
movl $0x2, %esi
movl $0x1, %edx
callq 0x2130
testb $0x40, %bl
jne 0x17288
testb %bl, %bl
movq 0x8(%rsp), %rdx
js 0x172a4
testl %ebx, %ebx
je 0x172d6
movq 0x78(%r14), %rdi
cmpl %ebx, 0x48(%r14)
jge 0x17304
movl $0xc, %edx
subl %ebx, %edx
leaq 0xc31f(%rip), %rsi      # 0x235a2
jmp 0x1730e
movq 0x78(%r14), %rdi
leaq 0xc1ae(%rip), %rsi      # 0x23441
movq 0x8(%rsp), %rdx
xorl %eax, %eax
callq 0x20c0
jmp 0x173d3
movl %ebx, %r15d
movq 0x78(%r14), %rsi
andl $0x3f, %r15d
je 0x172f5
movl $0x5b, %edi
callq 0x20a0
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %r15d
jle 0x1731a
movl $0xc, %edx
subl %r15d, %edx
leaq 0xc2ce(%rip), %rsi      # 0x235a2
jmp 0x17327
movq 0x78(%r14), %rcx
leaq 0xc17d(%rip), %rdi      # 0x2345e
movl $0x6, %esi
movl $0x1, %edx
callq 0x2130
jmp 0x173d3
leaq 0xc15b(%rip), %rax      # 0x23457
movq %rsi, %rdi
movq %rax, %rsi
jmp 0x17298
leal -0x1(%rbx), %edx
leaq 0xc28f(%rip), %rsi      # 0x2359d
xorl %eax, %eax
callq 0x20c0
jmp 0x173d3
decl %r15d
leaq 0xc279(%rip), %rsi      # 0x2359d
movl %r15d, %edx
xorl %eax, %eax
callq 0x20c0
testl $0x3f00, %ebx           # imm = 0x3F00
je 0x17374
movq 0x78(%r14), %rcx
leaq 0xc105(%rip), %rdi      # 0x23446
movl $0x3, %esi
movl $0x1, %edx
callq 0x2130
movl %ebx, %edx
shrl $0x8, %edx
andl $0x3f, %edx
movq 0x78(%r14), %rdi
cmpl 0x48(%r14), %edx
jle 0x17392
movl $0xc, %eax
subl %edx, %eax
leaq 0xc232(%rip), %rsi      # 0x235a2
movl %eax, %edx
jmp 0x1739b
movq 0x8(%rsp), %rdx
testq %rdx, %rdx
je 0x173c5
movq 0x78(%r14), %rdi
leaq 0xc0c7(%rip), %rsi      # 0x23450
xorl %eax, %eax
callq 0x20c0
jmp 0x173c5
decl %edx
leaq 0xc202(%rip), %rsi      # 0x2359d
xorl %eax, %eax
callq 0x20c0
movq 0x8(%rsp), %rcx
testq %rcx, %rcx
je 0x173c5
movq 0x78(%r14), %rdi
movl $0x1, %edx
shll %cl, %edx
leaq 0xc08c(%rip), %rsi      # 0x2344a
xorl %eax, %eax
callq 0x20c0
movq 0x78(%r14), %rsi
movl $0x5d, %edi
callq 0x20a0
movq 0x78(%r14), %rsi
movl $0xa, %edi
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 0x1743b
movl $0x0, 0x70(%r14)
testl %r12d, %r12d
jne 0x1747c
movl %ebx, %eax
andl $0x40, %eax
jmp 0x17664
testl $0x3e00, %ebp           # imm = 0x3E00
je 0x1744b
movl $0x0, 0x74(%r14)
cmpl $0x32, %r13d
je 0x174e4
cmpl $0x31, %r13d
je 0x174ac
xorl %r12d, %r12d
cmpl $0x30, %r13d
jne 0x178b5
btl $0x9, %ebp
jb 0x1769f
movq %r14, %rdi
movl $0x10, %esi
jmp 0x174c5
cmpl $0x40, %ebx
setge %al
cmpl %r10d, %ebx
setne %cl
orb %al, %cl
je 0x175fd
cmpl $0x26, %r13d
jne 0x1762b
xorl %r13d, %r13d
testb %bl, %bl
setns %r13b
addl $0x25, %r13d
jmp 0x1762b
btl $0xe, %ebp
jae 0x174bd
cmpl $0x0, 0x74(%r14)
je 0x17912
movq %r14, %rdi
movl $0x18, %esi
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 0x17f01
btl $0xe, %ebp
jae 0x174f5
cmpl $0x0, 0x74(%r14)
je 0x1792f
testl %r10d, %r10d
je 0x17710
movq %r10, %r13
testb $0x40, %bl
movq %r11, 0x8(%rsp)
je 0x17535
movl $0xe, %ebx
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl $0x40, %ecx
movq %r15, %r8
callq 0x16ad7
movl $0x0, %r15d
testl %eax, %eax
jne 0x178b2
movq %r14, %rdi
movl $0x2, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r15, %r9
callq 0x15da2
testq %rax, %rax
je 0x178b2
movw $0xbd0f, (%rax)         # imm = 0xBD0F
movq %r13, %rax
cmpl $0x40, %eax
movl $0xf, %ebp
cmovll %eax, %ebp
movl $0x0, 0x70(%r14)
xorl %r8d, %r8d
testl %r12d, %r12d
sete %r8b
shll $0x6, %r8d
orq $0x3f, %r8
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
movl $0x40, %ecx
callq 0x16ad7
testl %eax, %eax
jne 0x178b2
movl %r12d, 0x70(%r14)
movl 0x10b28(%rip), %eax     # 0x280d0
cmpl $-0x1, %eax
jne 0x175c8
movl $0x1, %eax
cpuid
movl %edx, 0x24(%rsp)
movl 0x24(%rsp), %eax
shrl $0xf, %eax
andl $0x1, %eax
movl %eax, 0x10b08(%rip)     # 0x280d0
testl %eax, %eax
je 0x17a80
movq %r14, %rdi
movl $0x2, %esi
movl %ebp, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
movw $0x450f, (%rax)         # imm = 0x450F
jmp 0x17ad4
addl $-0x21, %r13d
xorl %r12d, %r12d
cmpl $0xc, %r13d
jae 0x178b5
movl $0xf0f, %eax            # imm = 0xF0F
btl %r13d, %eax
jae 0x178b5
movl %r13d, %eax
leaq 0xbc05(%rip), %rcx      # 0x2322c
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
movl $0x26, %esi
subl %edx, %esi
cmpl $0x25, %ecx
cmovnel %ecx, %esi
movl $0x2e, %r13d
subl %edx, %r13d
cmpl $0x2d, %esi
cmovnel %esi, %r13d
leal -0x8(%r13), %r12d
cmpl $0x28, %r13d
cmovll %r13d, %r12d
testl %eax, %eax
je 0x177ae
leal -0x21(%r12), %eax
cmpl $0x5, %eax
ja 0x177ae
leaq 0xbaa3(%rip), %rcx      # 0x23130
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movzbl %r15b, %r15d
jmp 0x177ae
testl %r10d, %r10d
je 0x17950
cmpl $0x3f, %r10d
jg 0x179c7
movq %rcx, %r12
movq %r14, %rdi
movl %r10d, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
movq %r10, %rbx
callq 0x16ad7
testl %eax, %eax
jne 0x178b2
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r12, %r9
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1, %esi
movl %ebx, %edx
xorl %ecx, %ecx
movl %ebx, %r8d
jmp 0x179ae
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x16ad7
testl %eax, %eax
jne 0x178b2
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %ecx, %ecx
testl %r12d, %r12d
sete %cl
shll $0x5, %ecx
orq $0x1f, %rcx
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x21, %esi
movl $0x40, %edx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
orb $0x28, (%rax)
jmp 0x178b5
movl %r15d, %r15d
jmp 0x177ae
movzwl %r15w, %r15d
jmp 0x177ae
movswq %r15w, %r15
jmp 0x177ae
movsbq %r15b, %r15
jmp 0x177ae
movslq %r15d, %r15
testb %bl, %bl
jns 0x17809
cmpl $0x28, %r13d
jl 0x17809
movl %ebx, %edx
andl $0x3f, %edx
je 0x17809
testq %r15, %r15
jne 0x177cf
xorl %r15d, %r15d
testl $0x3f00, %ebx           # imm = 0x3F00
je 0x17809
movq %r11, 0x8(%rsp)
movq %r10, %rbp
movq %r14, %rdi
movl $0x1, %esi
xorl %ecx, %ecx
movl %ebx, %r8d
movq %r15, %r9
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x73, (%rax)
andl $0x8f, %ebx
xorl %r15d, %r15d
movq %rbp, %r10
movq 0x8(%rsp), %r11
addl $-0x20, %r12d
leaq 0xb934(%rip), %rax      # 0x23148
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 0x16ad7
jmp 0x178ae
movq %r14, %rdi
xorl %esi, %esi
jmp 0x17879
movq %r14, %rdi
xorl %esi, %esi
jmp 0x1784e
movq %r14, %rdi
movl $0x1, %esi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
movq %r10, %rbx
movq %r11, %r15
callq 0x17b6a
jmp 0x178ae
movq %r14, %rdi
movl $0x1, %esi
jmp 0x17897
movq %r14, %rdi
movl $0x1, %esi
movl %r10d, %edx
movq %r11, %rcx
movl %ebx, %r8d
movq %r15, %r9
movq %r10, %rbx
movq %r11, %r15
callq 0x17c8b
jmp 0x178ae
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 0x17d94
testl %eax, %eax
je 0x178c7
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 0x178b5
cmpl $0x28, %r13d
jl 0x178b5
movq %rbx, %r8
movl %r8d, %edx
andl $0x3f, %edx
je 0x178b5
movq %r15, %r9
testq %r15, %r15
jne 0x178f6
xorl %r12d, %r12d
testl $0x3f00, %r8d           # imm = 0x3F00
je 0x178b5
xorl %r9d, %r9d
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1, %esi
xorl %ecx, %ecx
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x73, (%rax)
jmp 0x178b5
movq %r14, %rdi
movq %r10, %r12
movq %r11, %r13
callq 0x18014
movq %r13, %r11
movq %r12, %r10
testl %eax, %eax
jne 0x178b2
jmp 0x174bd
movq %r14, %rdi
movq %r10, %r13
movq %r11, %rbp
callq 0x18014
movq %rbp, %r11
movq %r13, %r10
testl %eax, %eax
jne 0x178b2
jmp 0x174f5
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x16ad7
testl %eax, %eax
jne 0x178b2
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x9, (%rax)
orb $0x10, 0x1(%rax)
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $0xb, (%rax)
jmp 0x178b5
movq %r11, %rbp
movq %r10, %r13
movq %r14, %rdi
movl $0xe, %esi
xorl %edx, %edx
movl %ebx, %ecx
movq %r15, %r8
callq 0x16ad7
testl %eax, %eax
jne 0x178b2
movq %r14, %rdi
movl $0x1, %esi
xorl %edx, %edx
xorl %ecx, %ecx
movl $0xe, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
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 0x15da2
testq %rax, %rax
je 0x178b2
movb $0xb, (%rax)
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1, %esi
movl $0xe, %edx
xorl %ecx, %ecx
movl %r13d, %r8d
movq %rbp, %r9
jmp 0x17b2e
testl $0x3f00, %r10d          # imm = 0x3F00
jne 0x17a6f
cmpl $0x4000, %r10d          # imm = 0x4000
jb 0x16dc5
leaq 0xb8c9(%rip), %rdi      # 0x2333f
movl $0x410, %esi            # imm = 0x410
jmp 0x17b5e
movl $0x6, %esi
movq %r14, %rdi
callq 0x15218
testq %rax, %rax
je 0x178b2
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 0xb728(%rip), %rdx      # 0x231f0
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
movq %r14, %rdi
movl $0x11, %esi
movl $0x40, %edx
movl %ebp, %r8d
xorl %r9d, %r9d
callq 0x15da2
testq %rax, %rax
je 0x178b2
orb $0x30, 0x1(%rax)
movq %r13, %r8
testb %r8b, %r8b
movq 0x8(%rsp), %r9
jns 0x178b5
xorl %r12d, %r12d
movq %r14, %rdi
movl $0x1, %esi
movl $0xf, %edx
xorl %ecx, %ecx
callq 0x15da2
testq %rax, %rax
je 0x178b2
movb $-0x77, (%rax)
jmp 0x178b5
leaq 0xb7f4(%rip), %rdi      # 0x2333f
movl $0x411, %esi            # imm = 0x411
jmp 0x17b5e
leaq 0xb7e6(%rip), %rdi      # 0x2333f
movl $0x40d, %esi            # imm = 0x40D
xorl %eax, %eax
callq 0x2080
callq 0x2040