// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: JimCatchTryHelper
static int JimCatchTryHelper(Jim_Interp *interp, int istry, int argc, Jim_Obj *const *argv)
{
    static const char * const wrongargs_catchtry[2] = {
        "?-?no?code ... --? script ?resultVarName? ?optionVarName?",
        "?-?no?code ... --? script ?on|trap codes vars script? ... ?finally script?"
    };
    int exitCode = 0;
    int i;
    int sig = 0;
    int ok;
    Jim_Obj *finallyScriptObj = NULL;
    Jim_Obj *msgVarObj = NULL;
    Jim_Obj *optsVarObj = NULL;
    Jim_Obj *handlerScriptObj = NULL;
    Jim_Obj *errorCodeObj;
    int idx;


    jim_wide ignore_mask = (1 << JIM_EXIT) | (1 << JIM_EVAL) | (1 << JIM_SIGNAL);
    static const int max_ignore_code = sizeof(ignore_mask) * 8;

    JimPanic((istry != 0 && istry != 1, "wrong args to JimCatchTryHelper"));

    Jim_SetGlobalVariableStr(interp, "errorCode", Jim_NewStringObj(interp, "NONE", -1));

    for (i = 1; i < argc - 1; i++) {
        const char *arg = Jim_String(argv[i]);
        jim_wide option;
        int ignore;


        if (strcmp(arg, "--") == 0) {
            i++;
            break;
        }
        if (*arg != '-') {
            break;
        }

        if (strncmp(arg, "-no", 3) == 0) {
            arg += 3;
            ignore = 1;
        }
        else {
            arg++;
            ignore = 0;
        }

        if (Jim_StringToWide(arg, &option, 10) != JIM_OK) {
            option = -1;
        }
        if (option < 0) {
            option = Jim_FindByName(arg, jimReturnCodes, jimReturnCodesSize);
        }
        if (option < 0) {
            goto wrongargs;
        }

        if (ignore) {
            ignore_mask |= ((jim_wide)1 << option);
        }
        else {
            ignore_mask &= (~((jim_wide)1 << option));
        }
    }

    idx = i;

    if (argc - idx < 1) {
wrongargs:
        Jim_WrongNumArgs(interp, 1, argv, wrongargs_catchtry[istry]);
        return JIM_ERR;
    }

    if ((ignore_mask & (1 << JIM_SIGNAL)) == 0) {
        sig++;
    }

    interp->signal_level += sig;
    if (Jim_CheckSignal(interp)) {

        exitCode = JIM_SIGNAL;
    }
    else {
        exitCode = Jim_EvalObj(interp, argv[idx]);

        interp->errorFlag = 0;
    }
    interp->signal_level -= sig;

    errorCodeObj = Jim_GetGlobalVariableStr(interp, "errorCode", JIM_NONE);

    idx++;
    if (istry) {
        while (idx < argc) {
            int option;
            int ret;
            static const char * const try_options[] = { "on", "trap", "finally", NULL };
            enum { TRY_ON, TRY_TRAP, TRY_FINALLY, };

            if (Jim_GetEnum(interp, argv[idx], try_options, &option, "handler", JIM_ERRMSG) != JIM_OK) {
                return JIM_ERR;
            }
            switch (option) {
                case TRY_ON:
                case TRY_TRAP:
                    if (idx + 4 > argc) {
                        goto wrongargs;
                    }
                    if (option == TRY_ON) {
                        ret = JimMatchReturnCodes(interp, argv[idx + 1], exitCode);
                        if (ret > JIM_OK) {
                            goto wrongargs;
                        }
                    }
                    else if (errorCodeObj) {
                        int len = Jim_ListLength(interp, argv[idx + 1]);
                        int i;

                        ret = JIM_OK;

                        for (i = 0; i < len; i++) {
                            Jim_Obj *matchObj = Jim_ListGetIndex(interp, argv[idx + 1], i);
                            Jim_Obj *objPtr = Jim_ListGetIndex(interp, errorCodeObj, i);
                            if (Jim_StringCompareObj(interp, matchObj, objPtr, 0) != 0) {
                                ret = -1;
                                break;
                            }
                        }
                    }
                    else {

                        ret = -1;
                    }

                    if (ret == JIM_OK && handlerScriptObj == NULL) {
                        msgVarObj = Jim_ListGetIndex(interp, argv[idx + 2], 0);
                        optsVarObj = Jim_ListGetIndex(interp, argv[idx + 2], 1);
                        handlerScriptObj = argv[idx + 3];
                    }
                    idx += 4;
                    break;
                case TRY_FINALLY:
                    if (idx + 2 != argc) {
                        goto wrongargs;
                    }
                    finallyScriptObj = argv[idx + 1];
                    idx += 2;
                    break;
            }
        }
    }
    else {
        if (argc - idx >= 1) {
            msgVarObj = argv[idx];
            idx++;
            if (argc - idx >= 1) {
                optsVarObj = argv[idx];
                idx++;
            }
        }
    }


    if (exitCode >= 0 && exitCode < max_ignore_code && (((unsigned jim_wide)1 << exitCode) & ignore_mask)) {

        if (finallyScriptObj) {
            Jim_EvalObj(interp, finallyScriptObj);
        }
        return exitCode;
    }

    if (sig && exitCode == JIM_SIGNAL) {

        if (interp->signal_set_result) {
            interp->signal_set_result(interp, interp->sigmask);
        }
        else if (!istry) {
            Jim_SetResultInt(interp, interp->sigmask);
        }
        interp->sigmask = 0;
    }

    ok = 1;
    if (msgVarObj && Jim_Length(msgVarObj)) {
        if (Jim_SetVariable(interp, msgVarObj, Jim_GetResult(interp)) != JIM_OK) {
            ok = 0;
        }
    }
    if (ok && optsVarObj && Jim_Length(optsVarObj)) {
        Jim_Obj *optListObj = Jim_NewListObj(interp, NULL, 0);

        Jim_ListAppendElement(interp, optListObj, Jim_NewStringObj(interp, "-code", -1));
        Jim_ListAppendElement(interp, optListObj,
            Jim_NewIntObj(interp, exitCode == JIM_RETURN ? interp->returnCode : exitCode));
        Jim_ListAppendElement(interp, optListObj, Jim_NewStringObj(interp, "-level", -1));
        Jim_ListAppendElement(interp, optListObj, Jim_NewIntObj(interp, interp->returnLevel));
        if (exitCode == JIM_ERR) {
            Jim_ListAppendElement(interp, optListObj, Jim_NewStringObj(interp, "-errorinfo",
                -1));
            Jim_ListAppendElement(interp, optListObj, interp->stackTrace);

            if (errorCodeObj) {
                Jim_ListAppendElement(interp, optListObj, Jim_NewStringObj(interp, "-errorcode", -1));
                Jim_ListAppendElement(interp, optListObj, errorCodeObj);
            }
        }
        if (Jim_SetVariable(interp, optsVarObj, optListObj) != JIM_OK) {
            ok = 0;
        }
    }
    if (ok && handlerScriptObj) {

        exitCode = Jim_EvalObj(interp, handlerScriptObj);
    }

    if (finallyScriptObj) {

        Jim_Obj *prevResultObj = Jim_GetResult(interp);
        Jim_IncrRefCount(prevResultObj);
        int ret = Jim_EvalObj(interp, finallyScriptObj);
        if (ret == JIM_OK) {
            Jim_SetResult(interp, prevResultObj);
        }
        else {
            exitCode = ret;
        }
        Jim_DecrRefCount(interp, prevResultObj);
    }
    if (!istry) {
        Jim_SetResultInt(interp, exitCode);
        exitCode = JIM_OK;
    }
    return exitCode;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl $0x0, -0x24(%rbp)
movl $0x0, -0x2c(%rbp)
movq $0x0, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq $0x0, -0x50(%rbp)
movq $0xe0, -0x68(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xd8(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xa9a6(%rip), %rsi      # 0x3bd5b
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7990
movq -0xd8(%rbp), %rdi
movq %rax, %rdx
leaq 0xa981(%rip), %rsi      # 0x3bd51
callq 0xdf40
movl $0x1, -0x28(%rbp)
movl -0x28(%rbp), %eax
movl -0x18(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x31506
movq -0x20(%rbp), %rax
movslq -0x28(%rbp), %rcx
movq (%rax,%rcx,8), %rdi
callq 0x7960
movq %rax, -0x70(%rbp)
movq -0x70(%rbp), %rdi
leaq 0xb574(%rip), %rsi      # 0x3c981
callq 0x6300
cmpl $0x0, %eax
jne 0x31425
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x31506
movq -0x70(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x2d, %eax
je 0x31436
jmp 0x31506
movq -0x70(%rbp), %rdi
leaq 0xbd9f(%rip), %rsi      # 0x3d1e0
movl $0x3, %edx
callq 0x60b0
cmpl $0x0, %eax
jne 0x31465
movq -0x70(%rbp), %rax
addq $0x3, %rax
movq %rax, -0x70(%rbp)
movl $0x1, -0x7c(%rbp)
jmp 0x31478
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
movl $0x0, -0x7c(%rbp)
movq -0x70(%rbp), %rdi
leaq -0x78(%rbp), %rsi
movl $0xa, %edx
callq 0xb5d0
cmpl $0x0, %eax
je 0x31497
movq $-0x1, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jge 0x314b9
movq -0x70(%rbp), %rdi
leaq 0x15037(%rip), %rsi     # 0x464e0
movl $0x8, %edx
callq 0x14500
cltq
movq %rax, -0x78(%rbp)
cmpq $0x0, -0x78(%rbp)
jge 0x314c2
jmp 0x31519
cmpl $0x0, -0x7c(%rbp)
je 0x314de
movq -0x78(%rbp), %rcx
movl $0x1, %eax
shlq %cl, %rax
orq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0x314f6
movq -0x78(%rbp), %rcx
movl $0x1, %eax
shlq %cl, %rax
xorq $-0x1, %rax
andq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0x314f8
movl -0x28(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x28(%rbp)
jmp 0x313dc
movl -0x28(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x18(%rbp), %eax
subl -0x5c(%rbp), %eax
cmpl $0x1, %eax
jge 0x31546
jmp 0x31519
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rdx
movslq -0x14(%rbp), %rcx
leaq 0x16214(%rip), %rax     # 0x47740
movq (%rax,%rcx,8), %rcx
movl $0x1, %esi
callq 0x7880
movl $0x1, -0x4(%rbp)
jmp 0x31d51
movq -0x68(%rbp), %rax
andq $0x20, %rax
cmpq $0x0, %rax
jne 0x3155d
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movl -0x2c(%rbp), %ecx
movq -0x10(%rbp), %rax
addl 0x40(%rax), %ecx
movl %ecx, 0x40(%rax)
movq -0x10(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x31588
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x31588
movl $0x5, -0x24(%rbp)
jmp 0x315ae
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
callq 0x9b80
movl %eax, -0x24(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x1b4(%rax)
movl -0x2c(%rbp), %edx
movq -0x10(%rbp), %rax
movl 0x40(%rax), %ecx
subl %edx, %ecx
movl %ecx, 0x40(%rax)
movq -0x10(%rbp), %rdi
leaq 0xa789(%rip), %rsi      # 0x3bd51
xorl %edx, %edx
callq 0xe490
movq %rax, -0x58(%rbp)
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
cmpl $0x0, -0x14(%rbp)
je 0x3182a
jmp 0x315e8
movl -0x5c(%rbp), %eax
cmpl -0x18(%rbp), %eax
jge 0x31828
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
leaq 0x16145(%rip), %rdx     # 0x47750
leaq -0x80(%rbp), %rcx
leaq 0xbbd6(%rip), %r8       # 0x3d1ec
movl $0x1, %r9d
callq 0x8590
cmpl $0x0, %eax
je 0x31632
movl $0x1, -0x4(%rbp)
jmp 0x31d51
movl -0x80(%rbp), %eax
movl %eax, -0xdc(%rbp)
subl $0x2, %eax
jb 0x31656
jmp 0x31642
movl -0xdc(%rbp), %eax
subl $0x2, %eax
je 0x317f5
jmp 0x31823
movl -0x5c(%rbp), %eax
addl $0x4, %eax
cmpl -0x18(%rbp), %eax
jle 0x31666
jmp 0x31519
cmpl $0x0, -0x80(%rbp)
jne 0x316a2
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
movl -0x24(%rbp), %edx
callq 0x31d60
movl %eax, -0x84(%rbp)
cmpl $0x0, -0x84(%rbp)
jle 0x3169d
jmp 0x31519
jmp 0x31782
cmpq $0x0, -0x58(%rbp)
je 0x31776
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
callq 0x9b50
movl %eax, -0x88(%rbp)
movl $0x0, -0x84(%rbp)
movl $0x0, -0x8c(%rbp)
movl -0x8c(%rbp), %eax
cmpl -0x88(%rbp), %eax
jge 0x31774
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
movl -0x8c(%rbp), %edx
callq 0x101d0
movq %rax, -0x98(%rbp)
movq -0x10(%rbp), %rdi
movq -0x58(%rbp), %rsi
movl -0x8c(%rbp), %edx
callq 0x101d0
movq %rax, -0xa0(%rbp)
movq -0x10(%rbp), %rdi
movq -0x98(%rbp), %rsi
movq -0xa0(%rbp), %rdx
xorl %ecx, %ecx
callq 0xcf40
cmpl $0x0, %eax
je 0x3175e
movl $0xffffffff, -0x84(%rbp) # imm = 0xFFFFFFFF
jmp 0x31774
jmp 0x31760
movl -0x8c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8c(%rbp)
jmp 0x316e1
jmp 0x31780
movl $0xffffffff, -0x84(%rbp) # imm = 0xFFFFFFFF
jmp 0x31782
cmpl $0x0, -0x84(%rbp)
jne 0x317ea
cmpq $0x0, -0x50(%rbp)
jne 0x317ea
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
xorl %edx, %edx
callq 0x101d0
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x2, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rsi
movl $0x1, %edx
callq 0x101d0
movq %rax, -0x48(%rbp)
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x3, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x50(%rbp)
movl -0x5c(%rbp), %eax
addl $0x4, %eax
movl %eax, -0x5c(%rbp)
jmp 0x31823
movl -0x5c(%rbp), %eax
addl $0x2, %eax
cmpl -0x18(%rbp), %eax
je 0x31805
jmp 0x31519
movq -0x20(%rbp), %rax
movl -0x5c(%rbp), %ecx
addl $0x1, %ecx
movslq %ecx, %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x38(%rbp)
movl -0x5c(%rbp), %eax
addl $0x2, %eax
movl %eax, -0x5c(%rbp)
jmp 0x315e8
jmp 0x31876
movl -0x18(%rbp), %eax
subl -0x5c(%rbp), %eax
cmpl $0x1, %eax
jl 0x31874
movq -0x20(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x40(%rbp)
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
movl -0x18(%rbp), %eax
subl -0x5c(%rbp), %eax
cmpl $0x1, %eax
jl 0x31872
movq -0x20(%rbp), %rax
movslq -0x5c(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x48(%rbp)
movl -0x5c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x5c(%rbp)
jmp 0x31874
jmp 0x31876
cmpl $0x0, -0x24(%rbp)
jl 0x318b8
cmpl $0x40, -0x24(%rbp)
jge 0x318b8
movl -0x24(%rbp), %eax
movl %eax, %ecx
movl $0x1, %eax
shlq %cl, %rax
andq -0x68(%rbp), %rax
cmpq $0x0, %rax
je 0x318b8
cmpq $0x0, -0x38(%rbp)
je 0x318ad
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x9b80
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x31d51
cmpl $0x0, -0x2c(%rbp)
je 0x31962
cmpl $0x5, -0x24(%rbp)
jne 0x31962
movq -0x10(%rbp), %rax
cmpq $0x0, 0x50(%rax)
je 0x318ef
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rax
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rcx
movq 0x48(%rcx), %rsi
callq *%rax
jmp 0x31956
cmpl $0x0, -0x14(%rbp)
jne 0x31954
jmp 0x318f7
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rsi
callq 0x8d60
movq %rax, -0xa8(%rbp)
movq -0xa8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x31944
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x7a10
movq -0xa8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x31954
jmp 0x31956
movq -0x10(%rbp), %rax
movq $0x0, 0x48(%rax)
movl $0x1, -0x30(%rbp)
cmpq $0x0, -0x40(%rbp)
je 0x319a0
movq -0x40(%rbp), %rdi
callq 0xc700
cmpl $0x0, %eax
je 0x319a0
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x10(%rbp), %rax
movq (%rax), %rdx
callq 0x8df0
cmpl $0x0, %eax
je 0x3199e
movl $0x0, -0x30(%rbp)
jmp 0x319a0
cmpl $0x0, -0x30(%rbp)
je 0x31bfe
cmpq $0x0, -0x48(%rbp)
je 0x31bfe
movq -0x48(%rbp), %rdi
callq 0xc700
cmpl $0x0, %eax
je 0x31bfe
movq -0x10(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
xorl %edx, %edx
callq 0x7b50
movq %rax, -0xb0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x108(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x100(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xa7a2(%rip), %rsi      # 0x3c1a3
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7990
movq -0x108(%rbp), %rdi
movq -0x100(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
movq -0x10(%rbp), %rax
movq %rax, -0xf8(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0xf0(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0xe8(%rbp)
cmpl $0x2, -0x24(%rbp)
jne 0x31a5a
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
movl %eax, -0x10c(%rbp)
jmp 0x31a63
movl -0x24(%rbp), %eax
movl %eax, -0x10c(%rbp)
movq -0xe8(%rbp), %rdi
movl -0x10c(%rbp), %eax
movslq %eax, %rsi
callq 0x8d60
movq -0xf8(%rbp), %rdi
movq -0xf0(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
movq -0x10(%rbp), %rax
movq %rax, -0x130(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xb3a1(%rip), %rsi      # 0x3ce53
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7990
movq -0x130(%rbp), %rdi
movq -0x128(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
movq -0x10(%rbp), %rax
movq %rax, -0x120(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x118(%rbp)
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movslq 0x2c(%rax), %rsi
callq 0x8d60
movq -0x120(%rbp), %rdi
movq -0x118(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
cmpl $0x1, -0x24(%rbp)
jne 0x31bdc
movq -0x10(%rbp), %rax
movq %rax, -0x140(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x138(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xb2fd(%rip), %rsi      # 0x3ce3d
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7990
movq -0x140(%rbp), %rdi
movq -0x138(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
movq -0x10(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq -0x10(%rbp), %rax
movq 0x188(%rax), %rdx
callq 0x7bd0
cmpq $0x0, -0x58(%rbp)
je 0x31bda
movq -0x10(%rbp), %rax
movq %rax, -0x150(%rbp)
movq -0xb0(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x10(%rbp), %rdi
leaq 0xb2a2(%rip), %rsi      # 0x3ce48
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x7990
movq -0x150(%rbp), %rdi
movq -0x148(%rbp), %rsi
movq %rax, %rdx
callq 0x7bd0
movq -0x10(%rbp), %rdi
movq -0xb0(%rbp), %rsi
movq -0x58(%rbp), %rdx
callq 0x7bd0
jmp 0x31bdc
movq -0x10(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0xb0(%rbp), %rdx
callq 0x8df0
cmpl $0x0, %eax
je 0x31bfc
movl $0x0, -0x30(%rbp)
jmp 0x31bfe
cmpl $0x0, -0x30(%rbp)
je 0x31c1b
cmpq $0x0, -0x50(%rbp)
je 0x31c1b
movq -0x10(%rbp), %rdi
movq -0x50(%rbp), %rsi
callq 0x9b80
movl %eax, -0x24(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x31ce5
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x9b80
movl %eax, -0xbc(%rbp)
cmpl $0x0, -0xbc(%rbp)
jne 0x31cb5
jmp 0x31c62
movq -0xb8(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq -0xc8(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x31ca5
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x7a10
movq -0xc8(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
jmp 0x31cbe
movl -0xbc(%rbp), %eax
movl %eax, -0x24(%rbp)
movq -0xb8(%rbp), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x31ce3
movq -0x10(%rbp), %rdi
movq -0xb8(%rbp), %rsi
callq 0x7a10
jmp 0x31ce5
cmpl $0x0, -0x14(%rbp)
jne 0x31d4b
jmp 0x31ced
movq -0x10(%rbp), %rdi
movslq -0x24(%rbp), %rsi
callq 0x8d60
movq %rax, -0xd0(%rbp)
movq -0xd0(%rbp), %rax
movl 0x10(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq (%rax), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x31d36
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x7a10
movq -0xd0(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movl $0x0, -0x24(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nopl (%rax)