// File: /workspace/github_c_makefile_star2_O1/mmcco[P]sljit/sljit_src/sljitNativeX86_common.c
// Function: sljit_emit_jump
struct sljit_jump* sljit_emit_jump(struct sljit_compiler *compiler, int type)
{
	u_char *inst;
	struct sljit_jump *jump;

	CHECK_ERROR_PTR();
	CHECK_PTR(check_sljit_emit_jump(compiler, type));

	if (compiler->flags_saved) {
		if ((type & 0xff) <= SLJIT_JUMP) {
			if (emit_restore_flags(compiler, 0))
				return NULL;
		}
		compiler->flags_saved = 0;
	}

	jump = ensure_abuf(compiler, sizeof(struct sljit_jump));
	PTR_FAIL_IF_NULL(jump);
	set_jump(jump, compiler, type & SLJIT_REWRITABLE_JUMP);
	type &= 0xff;

	if (type >= SLJIT_CALL1) {
		if (call_with_args(compiler, type))
			return NULL;
	}

	/* Worst case size. */
#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
	compiler->size += (type >= SLJIT_JUMP) ? 5 : 6;
#else
	compiler->size += (type >= SLJIT_JUMP) ? (10 + 3) : (2 + 10 + 3);
#endif

	inst = ensure_buf(compiler, 2);
	PTR_FAIL_IF_NULL(inst);

	*inst++ = 0;
	*inst++ = type + 4;
	return jump;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
cmpl $0x0, (%rdi)
jne 0x1ce5e
movl %esi, %ebx
movq %rdi, %r14
cmpl $0x0, 0x84(%rdi)
je 0x1cc99
movl $0x0, 0x84(%r14)
jmp 0x1cd31
testl $0xffffee00, %ebx       # imm = 0xFFFFEE00
jne 0x1ce6d
movzbl %bl, %eax
cmpl $0x1c, %eax
jae 0x1ce7b
cmpl $0x16, %eax
setb %cl
btl $0x8, %ebx
setae %dl
orb %cl, %dl
je 0x1ce89
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x1cd31
cmpl $0x1000, %ebx           # imm = 0x1000
leaq 0x3684(%rip), %rsi      # 0x20360
leaq 0x683e(%rip), %rdx      # 0x23521
cmovbq %rsi, %rdx
btl $0x8, %ebx
leaq 0x6832(%rip), %r8       # 0x23524
cmovaeq %rsi, %r8
leaq 0x682d(%rip), %r9       # 0x2352a
leaq 0x6823(%rip), %rcx      # 0x23527
cmovaeq %r9, %rcx
cmpl $0x16, %eax
cmovaeq %rsi, %rcx
cmpl $0xe, %eax
cmovbq %r8, %rcx
movl %eax, %eax
leaq 0xafe1(%rip), %rsi      # 0x27d00
movq (%rsi,%rax,8), %r8
leaq 0x67e8(%rip), %rsi      # 0x23512
xorl %eax, %eax
callq 0x20b0
cmpl $0x0, 0x74(%r14)
je 0x1cd7b
movzbl %bl, %eax
cmpl $0x16, %eax
ja 0x1cd73
movl $0x7, %esi
movq %r14, %rdi
callq 0x152be
testq %rax, %rax
je 0x1ce06
movb $0x6, (%rax)
addq $0x6, 0x60(%r14)
movl $0x648d489d, 0x1(%rax)  # imm = 0x648D489D
movw $0xf824, 0x5(%rax)      # imm = 0xF824
movl $0x0, 0x74(%r14)
movl $0x0, 0x74(%r14)
movl $0x20, %esi
movq %r14, %rdi
callq 0x149da
testq %rax, %rax
je 0x1ce57
movq %rax, %r15
movl %ebx, %eax
andl $0x1000, %eax           # imm = 0x1000
movq $0x0, (%r15)
movq %rax, 0x10(%r15)
movq 0x28(%r14), %rax
leaq 0x10(%r14), %rcx
testq %rax, %rax
cmovneq %rax, %rcx
movq %r15, (%rcx)
movq %r15, 0x28(%r14)
movzbl %bl, %ebp
cmpl $0x19, %ebp
jb 0x1ce25
xorl %r12d, %r12d
cmpl $0x1b, %ebp
setae %r12b
leal (%r12,%r12,2), %esi
addl $0x4, %esi
movq %r14, %rdi
callq 0x152be
testq %rax, %rax
je 0x1ce11
leal (%r12,%r12,2), %ecx
addl $0x3, %ecx
movb %cl, (%rax)
movl %ecx, %ecx
addq %rcx, 0x60(%r14)
cmpl $0x1b, %ebp
jb 0x1ce19
movw $0x8b48, 0x1(%rax)      # imm = 0x8B48
movb $-0x2f, 0x3(%rax)
addq $0x4, %rax
jmp 0x1ce1c
cmpl $0x0, (%r14)
jne 0x1ce5e
jmp 0x1cd73
cmpl $0x0, (%r14)
jne 0x1ce5e
jmp 0x1ce25
incq %rax
movw $0x8b48, (%rax)         # imm = 0x8B48
movb $-0x8, 0x2(%rax)
xorl %eax, %eax
cmpl $0x16, %ebp
setb %al
movq 0x60(%r14), %rcx
leaq 0xd(%rcx,%rax,2), %rax
movq %rax, 0x60(%r14)
movl $0x2, %esi
movq %r14, %rdi
callq 0x152be
testq %rax, %rax
je 0x1ce57
movb $0x0, (%rax)
addb $0x4, %bl
movb %bl, 0x1(%rax)
jmp 0x1ce61
movl $0x2, (%r14)
xorl %r15d, %r15d
movq %r15, %rax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
leaq 0x63fb(%rip), %rdi      # 0x2326f
movl $0x51d, %esi            # imm = 0x51D
jmp 0x1ce95
leaq 0x63ed(%rip), %rdi      # 0x2326f
movl $0x51e, %esi            # imm = 0x51E
jmp 0x1ce95
leaq 0x63df(%rip), %rdi      # 0x2326f
movl $0x51f, %esi            # imm = 0x51F
xorl %eax, %eax
callq 0x2080
callq 0x2040