// File: /workspace/github_c_makefile_star2_O0/mmcco[P]sljit/sljit_src/sljitLir.c
// Function: sljit_create_compiler
struct sljit_compiler* sljit_create_compiler(void)
{
	struct sljit_compiler *compiler = malloc(sizeof(struct sljit_compiler));
	if (!compiler)
		return NULL;
	memset(compiler, 0, sizeof(struct sljit_compiler));

	SLJIT_COMPILE_ASSERT(
		sizeof(s_char) == 1 && sizeof(u_char) == 1
		&& sizeof(short) == 2 && sizeof(unsigned short) == 2
		&& sizeof(int) == 4 && sizeof(unsigned int) == 4
		&& (sizeof(uintptr_t) == 4 || sizeof(uintptr_t) == 8)
		&& sizeof(uintptr_t) <= sizeof(long)
		&& (sizeof(long) == 4 || sizeof(long) == 8)
		&& (sizeof(unsigned long) == 4 || sizeof(unsigned long) == 8),
		invalid_integer_types);
	SLJIT_COMPILE_ASSERT(SLJIT_INT_OP == SLJIT_SINGLE_OP,
		int_op_and_single_op_must_be_the_same);
	SLJIT_COMPILE_ASSERT(SLJIT_REWRITABLE_JUMP != SLJIT_SINGLE_OP,
		rewritable_jump_and_single_op_must_not_be_the_same);

	/* Only the non-zero members must be set. */
	compiler->error = SLJIT_SUCCESS;

	compiler->buf = malloc(BUF_SIZE);
	compiler->abuf = malloc(ABUF_SIZE);

	if (!compiler->buf || !compiler->abuf) {
		if (compiler->buf)
			free(compiler->buf);
		if (compiler->abuf)
			free(compiler->abuf);
		free(compiler);
		return NULL;
	}

	compiler->buf->next = NULL;
	compiler->buf->used_size = 0;
	compiler->abuf->next = NULL;
	compiler->abuf->used_size = 0;

	compiler->scratches = -1;
	compiler->saveds = -1;
	compiler->fscratches = -1;
	compiler->fsaveds = -1;
	compiler->local_size = -1;

#if (defined SLJIT_CONFIG_X86_32 && SLJIT_CONFIG_X86_32)
	compiler->args = -1;
#endif

#if (defined SLJIT_CONFIG_ARM_V5 && SLJIT_CONFIG_ARM_V5)
	compiler->cpool = malloc(CPOOL_SIZE * sizeof(unsigned long) + CPOOL_SIZE * sizeof(u_char));
	if (!compiler->cpool) {
		free(compiler->buf);
		free(compiler->abuf);
		free(compiler);
		return NULL;
	}
	compiler->cpool_unique = (u_char*)(compiler->cpool + CPOOL_SIZE);
	compiler->cpool_diff = 0xffffffff;
#endif

#if (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS)
	compiler->delay_slot = UNMOVABLE_INS;
#endif

#if (defined SLJIT_CONFIG_SPARC_32 && SLJIT_CONFIG_SPARC_32)
	compiler->delay_slot = UNMOVABLE_INS;
#endif

#if (defined SLJIT_NEEDS_COMPILER_INIT && SLJIT_NEEDS_COMPILER_INIT)
	if (!compiler_initialized) {
		init_compiler();
		compiler_initialized = 1;
	}
#endif

	return compiler;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x88, %edi
callq 0x20d0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x18bca
movq $0x0, -0x8(%rbp)
jmp 0x18d09
movq -0x10(%rbp), %rdi
xorl %esi, %esi
movl $0x88, %edx
callq 0x2080
jmp 0x18bdc
jmp 0x18bde
jmp 0x18be0
jmp 0x18be2
jmp 0x18be4
movq -0x10(%rbp), %rax
movl $0x0, (%rax)
movl $0x1000, %edi           # imm = 0x1000
callq 0x20d0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x38(%rax)
movl $0x1000, %edi           # imm = 0x1000
callq 0x20d0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x40(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x18c2e
movq -0x10(%rbp), %rax
cmpq $0x0, 0x40(%rax)
jne 0x18c74
movq -0x10(%rbp), %rax
cmpq $0x0, 0x38(%rax)
je 0x18c46
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0x2030
movq -0x10(%rbp), %rax
cmpq $0x0, 0x40(%rax)
je 0x18c5e
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x2030
movq -0x10(%rbp), %rdi
callq 0x2030
movq $0x0, -0x8(%rbp)
jmp 0x18d09
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x38(%rax), %rax
movq $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x40(%rax), %rax
movq $0x0, 0x8(%rax)
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x48(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x4c(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x50(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x54(%rax) # imm = 0xFFFFFFFF
movq -0x10(%rbp), %rax
movl $0xffffffff, 0x58(%rax) # imm = 0xFFFFFFFF
cmpl $0x0, 0x1b6b8(%rip)     # 0x343a8
jne 0x18d01
callq 0x18d20
movl $0x1, 0x1b6a7(%rip)     # 0x343a8
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)