// File: /workspace/github_c_makefile_star2_O3/msteveb[P]autosetup/./jimsh0.c
// Function: Jim_ApplyCoreCommand
static int Jim_ApplyCoreCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
{
    if (argc < 2) {
        Jim_WrongNumArgs(interp, 1, argv, "lambdaExpr ?arg ...?");
        return JIM_ERR;
    }
    else {
        int ret;
        Jim_Cmd *cmd;
        Jim_Obj *argListObjPtr;
        Jim_Obj *bodyObjPtr;
        Jim_Obj *nsObj = NULL;
        Jim_Obj **nargv;

        int len = Jim_ListLength(interp, argv[1]);
        if (len != 2 && len != 3) {
            Jim_SetResultFormatted(interp, "can't interpret \"%#s\" as a lambda expression", argv[1]);
            return JIM_ERR;
        }

        if (len == 3) {
#ifdef jim_ext_namespace

            nsObj = Jim_ListGetIndex(interp, argv[1], 2);
#else
            Jim_SetResultString(interp, "namespaces not enabled", -1);
            return JIM_ERR;
#endif
        }
        argListObjPtr = Jim_ListGetIndex(interp, argv[1], 0);
        bodyObjPtr = Jim_ListGetIndex(interp, argv[1], 1);

        cmd = JimCreateProcedureCmd(interp, argListObjPtr, NULL, bodyObjPtr, nsObj);

        if (cmd) {

            nargv = Jim_Alloc((argc - 2 + 1) * sizeof(*nargv));
            nargv[0] = Jim_NewStringObj(interp, "apply lambdaExpr", -1);
            Jim_IncrRefCount(nargv[0]);
            memcpy(&nargv[1], argv + 2, (argc - 2) * sizeof(*nargv));
            ret = JimCallProcedure(interp, cmd, argc - 2 + 1, nargv);
            Jim_DecrRefCount(interp, nargv[0]);
            Jim_Free(nargv);

            JimDecrCmdRefCount(interp, cmd);
            return ret;
        }
        return JIM_ERR;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdx, %r14
movq %rdi, %rbx
cmpl $0x1, %esi
jg 0x21a16
leaq 0xba86(%rip), %rcx      # 0x2d481
movl $0x1, %r15d
movq %rbx, %rdi
movl $0x1, %esi
movq %r14, %rdx
callq 0x7446
jmp 0x21b8b
movl %esi, %r15d
movq 0x8(%r14), %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0xe2fe
movl 0x20(%r12), %eax
leal -0x4(%rax), %ecx
cmpl $-0x3, %ecx
ja 0x21a4f
movq 0x8(%r14), %rdx
leaq 0xba56(%rip), %rsi      # 0x2d496
movq %rbx, %rdi
xorl %eax, %eax
callq 0x6923
jmp 0x21b85
cmpl $0x3, %eax
jne 0x21a8f
leaq 0xba68(%rip), %rsi      # 0x2d4c3
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7508
movq %rax, %r14
incl 0x10(%rax)
movq (%rbx), %rsi
movl 0x10(%rsi), %eax
leal -0x1(%rax), %ecx
movl %ecx, 0x10(%rsi)
cmpl $0x1, %eax
jg 0x21a87
movq %rbx, %rdi
callq 0x758c
movq %r14, (%rbx)
jmp 0x21b85
movq 0x8(%r14), %r12
movq %rbx, %rdi
movq %r12, %rsi
callq 0xe2fe
cmpl $0x0, 0x20(%r12)
jle 0x21ab0
movq 0x18(%r12), %rax
movq (%rax), %r12
jmp 0x21ab3
xorl %r12d, %r12d
movq 0x8(%r14), %r13
movq %rbx, %rdi
movq %r13, %rsi
callq 0xe2fe
cmpl $0x2, 0x20(%r13)
jl 0x21ad3
movq 0x18(%r13), %rax
movq 0x8(%rax), %rcx
jmp 0x21ad5
xorl %ecx, %ecx
movq %rbx, %rdi
movq %r12, %rsi
xorl %edx, %edx
callq 0x22d67
testq %rax, %rax
je 0x21b85
movq %rax, -0x30(%rbp)
leal -0x2(%r15), %r12d
decl %r15d
leaq (,%r15,8), %rsi
xorl %edi, %edi
callq *0x15782(%rip)          # 0x37288
movq %rax, %r13
leaq 0xb9ca(%rip), %rsi      # 0x2d4da
movq %rbx, %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7508
movq %rax, (%r13)
incl 0x10(%rax)
leaq 0x8(%r13), %rdi
addq $0x10, %r14
shlq $0x3, %r12
movq %r14, %rsi
movq %r12, %rdx
movq -0x30(%rbp), %r14
callq 0x6320
movq %rbx, %rdi
movq %r14, %rsi
movl %r15d, %edx
movq %r13, %rcx
callq 0x1b25c
movl %eax, %r15d
movq (%r13), %rsi
movl 0x10(%rsi), %eax
leal -0x1(%rax), %ecx
movl %ecx, 0x10(%rsi)
cmpl $0x1, %eax
jg 0x21b6d
movq %rbx, %rdi
callq 0x758c
movq %r13, %rdi
xorl %esi, %esi
callq *0x15710(%rip)          # 0x37288
movq %rbx, %rdi
movq %r14, %rsi
callq 0x189aa
jmp 0x21b8b
movl $0x1, %r15d
movl %r15d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq