// File: /workspace/github_c_makefile_star2_O0/zenkj[P]luajit-arm64/src/host/minilua.c
// Function: lua_newstate
static lua_State*lua_newstate(lua_Alloc f,void*ud){
int i;
lua_State*L;
global_State*g;
void*l=(*f)(ud,NULL,0,state_size(LG));
if(l==NULL)return NULL;
L=tostate(l);
g=&((LG*)L)->g;
L->next=NULL;
L->tt=8;
g->currentwhite=bit2mask(0,5);
L->marked=luaC_white(g);
set2bits(L->marked,5,6);
preinit_state(L,g);
g->frealloc=f;
g->ud=ud;
g->mainthread=L;
g->uvhead.u.l.prev=&g->uvhead;
g->uvhead.u.l.next=&g->uvhead;
g->GCthreshold=0;
g->strt.size=0;
g->strt.nuse=0;
g->strt.hash=NULL;
setnilvalue(registry(L));
luaZ_initbuffer(L,&g->buff);
g->panic=NULL;
g->gcstate=0;
g->rootgc=obj2gco(L);
g->sweepstrgc=0;
g->sweepgc=&g->rootgc;
g->gray=NULL;
g->grayagain=NULL;
g->weak=NULL;
g->tmudata=NULL;
g->totalbytes=sizeof(LG);
g->gcpause=200;
g->gcstepmul=200;
g->gcdept=0;
for(i=0;i<(8+1);i++)g->mt[i]=NULL;
if(luaD_rawrunprotected(L,f_luaopen,NULL)!=0){
close_state(L);
L=NULL;
}
else
{}
return L;
}

// Assembly:
subq $0x38, %rsp
movq %rdi, 0x28(%rsp)
movq %rsi, 0x20(%rsp)
movq 0x28(%rsp), %rax
movq 0x20(%rsp), %rdi
xorl %ecx, %ecx
movl %ecx, %edx
movl $0x268, %ecx            # imm = 0x268
movq %rdx, %rsi
callq *%rax
movq %rax, (%rsp)
cmpq $0x0, (%rsp)
jne 0x3e1f
movq $0x0, 0x30(%rsp)
jmp 0x4066
movq (%rsp), %rax
movq %rax, 0x10(%rsp)
movq 0x10(%rsp), %rax
addq $0xb8, %rax
movq %rax, 0x8(%rsp)
movq 0x10(%rsp), %rax
movq $0x0, (%rax)
movq 0x10(%rsp), %rax
movb $0x8, 0x8(%rax)
movq 0x8(%rsp), %rax
movb $0x21, 0x20(%rax)
movq 0x8(%rsp), %rax
movzbl 0x20(%rax), %eax
andl $0x3, %eax
movb %al, %cl
movq 0x10(%rsp), %rax
movb %cl, 0x9(%rax)
movq 0x10(%rsp), %rax
movzbl 0x9(%rax), %ecx
orl $0x60, %ecx
movb %cl, 0x9(%rax)
movq 0x10(%rsp), %rdi
movq 0x8(%rsp), %rsi
callq 0x4150
movq 0x28(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x10(%rax)
movq 0x20(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x18(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xb0(%rax)
movq 0x8(%rsp), %rcx
addq $0xb8, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xd0(%rax)
movq 0x8(%rsp), %rcx
addq $0xb8, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0xd8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x70(%rax)
movq 0x8(%rsp), %rax
movl $0x0, 0xc(%rax)
movq 0x8(%rsp), %rax
movl $0x0, 0x8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, (%rax)
movq 0x10(%rsp), %rax
movq 0x20(%rax), %rax
movl $0x0, 0xa8(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x58(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x68(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x98(%rax)
movq 0x8(%rsp), %rax
movb $0x0, 0x21(%rax)
movq 0x10(%rsp), %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x28(%rax)
movq 0x8(%rsp), %rax
movl $0x0, 0x24(%rax)
movq 0x8(%rsp), %rcx
addq $0x28, %rcx
movq 0x8(%rsp), %rax
movq %rcx, 0x30(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x38(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x40(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x48(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x50(%rax)
movq 0x8(%rsp), %rax
movq $0x268, 0x78(%rax)      # imm = 0x268
movq 0x8(%rsp), %rax
movl $0xc8, 0x90(%rax)
movq 0x8(%rsp), %rax
movl $0xc8, 0x94(%rax)
movq 0x8(%rsp), %rax
movq $0x0, 0x88(%rax)
movl $0x0, 0x1c(%rsp)
cmpl $0x9, 0x1c(%rsp)
jge 0x402b
movq 0x8(%rsp), %rax
movslq 0x1c(%rsp), %rcx
movq $0x0, 0xe0(%rax,%rcx,8)
movl 0x1c(%rsp), %eax
addl $0x1, %eax
movl %eax, 0x1c(%rsp)
jmp 0x4001
movq 0x10(%rsp), %rdi
leaq 0x2c9(%rip), %rsi       # 0x4300
xorl %eax, %eax
movl %eax, %edx
callq 0x4250
cmpl $0x0, %eax
je 0x405a
movq 0x10(%rsp), %rdi
callq 0x4400
movq $0x0, 0x10(%rsp)
jmp 0x405c
jmp 0x405c
movq 0x10(%rsp), %rax
movq %rax, 0x30(%rsp)
movq 0x30(%rsp), %rax
addq $0x38, %rsp
retq