// File: /workspace/github_c_makefile_star2_O3/zenkj[P]luajit-arm64/src/host/minilua.c
// Function: luaB_newproxy
static int luaB_newproxy(lua_State*L){
lua_settop(L,1);
lua_newuserdata(L,0);
if(lua_toboolean(L,1)==0)
return 1;
else if(lua_isboolean(L,1)){
lua_newtable(L);
lua_pushvalue(L,-1);
lua_pushboolean(L,1);
lua_rawset(L,lua_upvalueindex(1));
}
else{
int validproxy=0;
if(lua_getmetatable(L,1)){
lua_rawget(L,lua_upvalueindex(1));
validproxy=lua_toboolean(L,-1);
lua_pop(L,1);
}
luaL_argcheck(L,validproxy,1,"boolean or proxy expected");
lua_getmetatable(L,1);
}
lua_setmetatable(L,2);
return 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movq 0x10(%rdi), %rax
movq 0x18(%rdi), %rdx
leaq 0x10(%rdx), %rcx
cmpq %rcx, %rax
jae 0x9ba9
xorl %esi, %esi
subq %rax, %rdx
cmovbq %rsi, %rdx
addq $0xf, %rdx
movq %rdx, %xmm0
shrq $0x4, %rdx
addq $0x4, %rdx
andq $-0x4, %rdx
pshufd $0x44, %xmm0, %xmm0     # xmm0 = xmm0[0,1,0,1]
psrlq $0x4, %xmm0
addq $0x38, %rax
movdqa 0xb53d(%rip), %xmm1     # 0x15010
movdqa 0xb545(%rip), %xmm2     # 0x15020
movdqa 0xb54d(%rip), %xmm3     # 0x15030
pxor %xmm3, %xmm0
pcmpeqd %xmm4, %xmm4
movq %rsi, %xmm5
pshufd $0x44, %xmm5, %xmm5     # xmm5 = xmm5[0,1,0,1]
movdqa %xmm5, %xmm6
por %xmm2, %xmm6
pxor %xmm3, %xmm6
movdqa %xmm6, %xmm7
pcmpgtd %xmm0, %xmm7
pcmpeqd %xmm0, %xmm6
pshufd $0xf5, %xmm6, %xmm8     # xmm8 = xmm6[1,1,3,3]
pand %xmm7, %xmm8
pshufd $0xf5, %xmm7, %xmm6     # xmm6 = xmm7[1,1,3,3]
por %xmm8, %xmm6
movd %xmm6, %edi
notl %edi
testb $0x1, %dil
je 0x9b35
movl $0x0, -0x30(%rax)
pxor %xmm4, %xmm6
pextrw $0x4, %xmm6, %edi
testb $0x1, %dil
je 0x9b4b
movl $0x0, -0x20(%rax)
por %xmm1, %xmm5
pxor %xmm3, %xmm5
movdqa %xmm5, %xmm6
pcmpgtd %xmm0, %xmm6
pcmpeqd %xmm0, %xmm5
pshufd $0xf5, %xmm5, %xmm7     # xmm7 = xmm5[1,1,3,3]
pand %xmm6, %xmm7
pshufd $0xf5, %xmm6, %xmm5     # xmm5 = xmm6[1,1,3,3]
por %xmm7, %xmm5
pxor %xmm4, %xmm5
pextrw $0x0, %xmm5, %edi
testb $0x1, %dil
je 0x9b87
movl $0x0, -0x10(%rax)
pextrw $0x4, %xmm5, %edi
testb $0x1, %dil
je 0x9b98
movl $0x0, (%rax)
addq $0x4, %rsi
addq $0x40, %rax
cmpq %rsi, %rdx
jne 0x9aeb
movq %rcx, 0x10(%rbx)
movq %rbx, %rdi
xorl %esi, %esi
callq 0x106f4
movq 0x18(%rbx), %rax
cmpq 0x10(%rbx), %rax
leaq 0xb8d2(%rip), %r14      # 0x15498
cmovaeq %r14, %rax
movl 0x8(%rax), %ecx
testl %ecx, %ecx
je 0x9d25
cmpl $0x1, %ecx
jne 0x9ca8
cmpl $0x0, (%rax)
je 0x9d25
cmpq %r14, %rax
je 0x9ca8
movq %rbx, %rdi
xorl %esi, %esi
callq 0x38a5
movq 0x10(%rbx), %rax
movq -0x10(%rax), %rcx
movq %rcx, (%rax)
movl -0x8(%rax), %ecx
movl %ecx, 0x8(%rax)
movq 0x10(%rbx), %rax
leaq 0x10(%rax), %rcx
movq %rcx, 0x10(%rbx)
movl $0x1, %ecx
movl %ecx, 0x10(%rax)
movl %ecx, 0x18(%rax)
movq 0x10(%rbx), %r12
movq 0x28(%rbx), %rax
leaq 0x10(%r12), %rcx
movq %rcx, 0x10(%rbx)
movq 0x8(%rax), %rax
movq (%rax), %rax
leaq 0x28(%rax), %r15
cmpb $0x0, 0xb(%rax)
cmoveq %r14, %r15
movq (%r15), %rsi
leaq -0x10(%r12), %rdx
movq %rbx, %rdi
callq 0x7aff
movq (%r12), %rcx
movq %rcx, (%rax)
movl 0x8(%r12), %ecx
movl %ecx, 0x8(%rax)
movq 0x10(%rbx), %rax
cmpl $0x4, -0x8(%rax)
jl 0x9c9e
movq -0x10(%rax), %rcx
testb $0x3, 0x9(%rcx)
je 0x9c9e
movq (%r15), %rcx
movb 0x9(%rcx), %dl
testb $0x4, %dl
je 0x9c9e
movq 0x20(%rbx), %rax
andb $-0x5, %dl
movb %dl, 0x9(%rcx)
movq 0x40(%rax), %rdx
movq %rdx, 0x30(%rcx)
movq %rcx, 0x40(%rax)
movq 0x10(%rbx), %rax
addq $-0x20, %rax
movq %rax, 0x10(%rbx)
jmp 0x9d18
movq %rbx, %rdi
callq 0x1054c
testl %eax, %eax
je 0x9d3a
movq 0x10(%rbx), %r15
movq 0x28(%rbx), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
leaq 0x28(%rax), %rcx
cmpb $0x0, 0xb(%rax)
cmoveq %r14, %rcx
movq (%rcx), %rdi
leaq -0x10(%r15), %rsi
callq 0x7876
movq (%rax), %rcx
movq %rcx, -0x10(%r15)
movl 0x8(%rax), %eax
movl %eax, -0x8(%r15)
movq 0x10(%rbx), %rax
movl -0x8(%rax), %ecx
addq $-0x10, %rax
cmpl $0x1, %ecx
je 0x9d07
testl %ecx, %ecx
je 0x9d36
movq %rax, 0x10(%rbx)
jmp 0x9d10
cmpl $0x0, (%rax)
movq %rax, 0x10(%rbx)
je 0x9d3a
movq %rbx, %rdi
callq 0x1054c
movq %rbx, %rdi
movl $0x2, %esi
callq 0x99cf
movl $0x1, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
movq %rax, 0x10(%rbx)
leaq 0xc19d(%rip), %rdx      # 0x15ede
movq %rbx, %rdi
movl $0x1, %esi
callq 0xaa6a