// File: /workspace/github_c_makefile_star2_O2/mmcco[P]sljit/sljit_src/sljitNativeX86_64.c
// Function: sljit_set_context
int sljit_set_context(struct sljit_compiler *compiler,
	int options, int args, int scratches, int saveds,
	int fscratches, int fsaveds, int local_size)
{
	int saved_reg_size;

	CHECK_ERROR();
	CHECK(check_sljit_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size));
	set_set_context(compiler, options, args, scratches, saveds, fscratches, fsaveds, local_size);

	/* Including the return address saved by the call instruction. */
	saved_reg_size = GET_SAVED_REGS_SIZE(scratches, saveds, 1);
	compiler->local_size = ((local_size + SLJIT_LOCALS_OFFSET + saved_reg_size + 15) & ~15) - saved_reg_size;
	return SLJIT_SUCCESS;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl (%rdi), %ebx
testl %ebx, %ebx
jne 0x136fb
movl %r9d, %r13d
movl %r8d, %r15d
movl %ecx, %r12d
movl %esi, %ebp
movq %rdi, %r14
movl 0x48(%rsp), %r10d
movl 0x40(%rsp), %r11d
cmpl $0x0, 0x84(%rdi)
je 0x1360f
andl $0x0, 0x84(%r14)
jmp 0x136ab
cmpl $0x2, %ebp
jae 0x1370c
cmpl $0x4, %edx
jae 0x1371a
cmpl $0xd, %r12d
jae 0x13728
cmpl $0xd, %r15d
jae 0x13736
leal (%r15,%r12), %eax
cmpl $0xd, %eax
jae 0x13744
cmpl %r15d, %edx
ja 0x13752
cmpl $0x7, %r13d
jae 0x13760
cmpl $0x7, %r11d
jae 0x1376e
leal (%r11,%r13), %eax
cmpl $0x7, %eax
jae 0x1377c
cmpl $0x10001, %r10d         # imm = 0x10001
jae 0x1378a
movq 0x78(%r14), %rdi
testq %rdi, %rdi
je 0x136ab
leaq 0xdcff(%rip), %rsi      # 0x21388
movl %r12d, %ecx
movl %r15d, %r8d
movl %r13d, %r9d
xorl %eax, %eax
pushq %r10
pushq %r11
callq 0x20c0
movl 0x50(%rsp), %r11d
movl 0x58(%rsp), %r10d
addq $0x10, %rsp
movl %ebp, 0x4(%r14)
movl %r12d, 0x48(%r14)
movl %r15d, 0x4c(%r14)
movl %r13d, 0x50(%r14)
movl %r11d, 0x54(%r14)
movl %r10d, 0x80(%r14)
leal 0x1ffffffa(%r12), %eax
xorl %ecx, %ecx
cmpl $0x6, %r12d
cmovgel %eax, %ecx
cmpl $0x6, %r15d
pushq $0x6
popq %rax
cmovll %r15d, %eax
addl %ecx, %eax
leal 0x8(,%rax,8), %ecx
leal (%r10,%rax,8), %eax
addl $0x1f, %eax
andl $-0x10, %eax
subl %ecx, %eax
movl %eax, 0x58(%r14)
movl %ebx, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xdbec(%rip), %rdi      # 0x212ff
movl $0x3ab, %esi            # imm = 0x3AB
jmp 0x13796
leaq 0xdbde(%rip), %rdi      # 0x212ff
movl $0x3ac, %esi            # imm = 0x3AC
jmp 0x13796
leaq 0xdbd0(%rip), %rdi      # 0x212ff
movl $0x3ad, %esi            # imm = 0x3AD
jmp 0x13796
leaq 0xdbc2(%rip), %rdi      # 0x212ff
movl $0x3ae, %esi            # imm = 0x3AE
jmp 0x13796
leaq 0xdbb4(%rip), %rdi      # 0x212ff
movl $0x3af, %esi            # imm = 0x3AF
jmp 0x13796
leaq 0xdba6(%rip), %rdi      # 0x212ff
movl $0x3b0, %esi            # imm = 0x3B0
jmp 0x13796
leaq 0xdb98(%rip), %rdi      # 0x212ff
movl $0x3b1, %esi            # imm = 0x3B1
jmp 0x13796
leaq 0xdb8a(%rip), %rdi      # 0x212ff
movl $0x3b2, %esi            # imm = 0x3B2
jmp 0x13796
leaq 0xdb7c(%rip), %rdi      # 0x212ff
movl $0x3b3, %esi            # imm = 0x3B3
jmp 0x13796
leaq 0xdb6e(%rip), %rdi      # 0x212ff
movl $0x3b4, %esi            # imm = 0x3B4
xorl %eax, %eax
callq 0x2080
callq 0x2040