// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: JimDictWith
static int JimDictWith(Jim_Interp *interp, Jim_Obj *dictVarName, Jim_Obj *const *keyv, int keyc, Jim_Obj *scriptObj)
{
    int i;
    Jim_Obj *objPtr;
    Jim_Obj *dictObj;
    Jim_Obj **dictValues;
    int len;
    int ret = JIM_OK;


    dictObj = Jim_GetVariable(interp, dictVarName, JIM_ERRMSG);
    if (dictObj == NULL || Jim_DictKeysVector(interp, dictObj, keyv, keyc, &objPtr, JIM_ERRMSG) != JIM_OK) {
        return JIM_ERR;
    }

    dictValues = Jim_DictPairs(interp, objPtr, &len);
    if (len && dictValues == NULL) {
        return JIM_ERR;
    }
    for (i = 0; i < len; i += 2) {
        if (Jim_SetVariable(interp, dictValues[i], dictValues[i + 1]) == JIM_ERR) {
            return JIM_ERR;
        }
    }


    if (Jim_Length(scriptObj)) {
        ret = Jim_EvalObj(interp, scriptObj);


        if (ret == JIM_OK && Jim_GetVariable(interp, dictVarName, 0) != NULL) {

            Jim_Obj **newkeyv = Jim_Alloc(sizeof(*newkeyv) * (keyc + 1));
            for (i = 0; i < keyc; i++) {
                newkeyv[i] = keyv[i];
            }

            for (i = 0; i < len; i += 2) {

                if (Jim_StringCompareObj(interp, dictVarName, dictValues[i], 0) != 0) {

                    objPtr = Jim_GetVariable(interp, dictValues[i], 0);
                    newkeyv[keyc] = dictValues[i];
                    Jim_SetDictKeysVector(interp, dictVarName, newkeyv, keyc + 1, objPtr, JIM_NORESULT);
                }
            }
            Jim_Free(newkeyv);
        }
    }

    return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movl %ecx, -0x24(%rbp)
movq %r8, -0x30(%rbp)
movl $0x0, -0x58(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x1, %edx
callq 0xa7b0
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
je 0x31e62
movq -0x10(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x20(%rbp), %rdx
movl -0x24(%rbp), %ecx
leaq -0x40(%rbp), %r8
movl $0x1, %r9d
callq 0x11610
cmpl $0x0, %eax
je 0x31e6e
movl $0x1, -0x4(%rbp)
jmp 0x32034
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rsi
leaq -0x54(%rbp), %rdx
callq 0x11510
movq %rax, -0x50(%rbp)
cmpl $0x0, -0x54(%rbp)
je 0x31e9c
cmpq $0x0, -0x50(%rbp)
jne 0x31e9c
movl $0x1, -0x4(%rbp)
jmp 0x32034
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x31eef
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x50(%rbp), %rax
movl -0x34(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rdx
callq 0x8df0
cmpl $0x1, %eax
jne 0x31ee2
movl $0x1, -0x4(%rbp)
jmp 0x32034
jmp 0x31ee4
movl -0x34(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x34(%rbp)
jmp 0x31ea3
movq -0x30(%rbp), %rdi
callq 0xc700
cmpl $0x0, %eax
je 0x3202e
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x9b80
movl %eax, -0x58(%rbp)
cmpl $0x0, -0x58(%rbp)
jne 0x3202c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
xorl %edx, %edx
callq 0xa7b0
cmpq $0x0, %rax
je 0x3202c
movq 0x16355(%rip), %rax     # 0x48290
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rsi
shlq $0x3, %rsi
xorl %ecx, %ecx
movl %ecx, %edi
callq *%rax
movq %rax, -0x60(%rbp)
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x24(%rbp), %eax
jge 0x31f84
movq -0x20(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x31f59
movl $0x0, -0x34(%rbp)
movl -0x34(%rbp), %eax
cmpl -0x54(%rbp), %eax
jge 0x3201b
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
xorl %ecx, %ecx
callq 0xcf40
cmpl $0x0, %eax
je 0x3200b
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0xa7b0
movq %rax, -0x40(%rbp)
movq -0x50(%rbp), %rax
movslq -0x34(%rbp), %rcx
movq (%rax,%rcx,8), %rdx
movq -0x60(%rbp), %rax
movslq -0x24(%rbp), %rcx
movq %rdx, (%rax,%rcx,8)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl -0x24(%rbp), %ecx
addl $0x1, %ecx
movq -0x40(%rbp), %r8
movl $0x10, %r9d
callq 0x116c0
jmp 0x3200d
movl -0x34(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x34(%rbp)
jmp 0x31f8b
movq 0x1626e(%rip), %rax     # 0x48290
movq -0x60(%rbp), %rdi
xorl %ecx, %ecx
movl %ecx, %esi
callq *%rax
jmp 0x3202e
movl -0x58(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopl (%rax)