// File: /workspace/github_c_makefile_star2_O0/msteveb[P]autosetup/./jimsh0.c
// Function: JimExprOpStrBin
static int JimExprOpStrBin(Jim_Interp *interp, struct JimExprNode *node)
{
    Jim_Obj *A, *B;
    jim_wide wC;
    int comp, rc;

    if ((rc = JimExprGetTerm(interp, node->left, &A)) != JIM_OK) {
        return rc;
    }
    if ((rc = JimExprGetTerm(interp, node->right, &B)) != JIM_OK) {
        Jim_DecrRefCount(interp, A);
        return rc;
    }

    switch (node->type) {
        case JIM_EXPROP_STREQ:
        case JIM_EXPROP_STRNE:
            wC = Jim_StringEqObj(A, B);
            if (node->type == JIM_EXPROP_STRNE) {
                wC = !wC;
            }
            break;
        case JIM_EXPROP_STRLT:
        case JIM_EXPROP_STRGT:
        case JIM_EXPROP_STRLE:
        case JIM_EXPROP_STRGE:
            comp = Jim_StringCompareObj(interp, A, B, 0);
            if (node->type == JIM_EXPROP_STRLT) {
                wC = comp == -1;
            } else if (node->type == JIM_EXPROP_STRGT) {
                wC = comp == 1;
            } else if (node->type == JIM_EXPROP_STRLE) {
                wC = comp == -1 || comp == 0;
            } else {
                wC = comp == 0 || comp == 1;
            }
            break;
        case JIM_EXPROP_STRIN:
            wC = JimSearchList(interp, B, A);
            break;
        case JIM_EXPROP_STRNI:
            wC = !JimSearchList(interp, B, A);
            break;
        default:
            abort();
    }
    Jim_SetResultInt(interp, wC);

    Jim_DecrRefCount(interp, A);
    Jim_DecrRefCount(interp, B);

    return rc;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
leaq -0x20(%rbp), %rdx
callq 0x23a90
movl %eax, -0x38(%rbp)
cmpl $0x0, %eax
je 0x232a8
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x234d0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rsi
leaq -0x28(%rbp), %rdx
callq 0x23a90
movl %eax, -0x38(%rbp)
cmpl $0x0, %eax
je 0x232ef
movq -0x20(%rbp), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x232e4
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x7a10
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x234d0
movq -0x18(%rbp), %rax
movl (%rax), %eax
addl $-0x2b, %eax
movl %eax, %ecx
movq %rcx, -0x48(%rbp)
subl $0x7, %eax
ja 0x23437
movq -0x48(%rbp), %rax
leaq 0x13e72(%rip), %rcx     # 0x37184
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0xcb50
cltq
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2c, (%rax)
jne 0x2334c
cmpq $0x0, -0x30(%rbp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x2343c
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
movq -0x28(%rbp), %rdx
xorl %ecx, %ecx
callq 0xcf40
movl %eax, -0x34(%rbp)
movq -0x18(%rbp), %rax
cmpl $0x2f, (%rax)
jne 0x23384
cmpl $-0x1, -0x34(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x233f6
movq -0x18(%rbp), %rax
cmpl $0x30, (%rax)
jne 0x233a1
cmpl $0x1, -0x34(%rbp)
sete %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x233f4
movq -0x18(%rbp), %rax
cmpl $0x31, (%rax)
jne 0x233cf
movb $0x1, %al
cmpl $-0x1, -0x34(%rbp)
movb %al, -0x49(%rbp)
je 0x233bf
cmpl $0x0, -0x34(%rbp)
sete %al
movb %al, -0x49(%rbp)
movb -0x49(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x233f2
movb $0x1, %al
cmpl $0x0, -0x34(%rbp)
movb %al, -0x4a(%rbp)
je 0x233e4
cmpl $0x1, -0x34(%rbp)
sete %al
movb %al, -0x4a(%rbp)
movb -0x4a(%rbp), %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x233f4
jmp 0x233f6
jmp 0x2343c
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x23be0
cltq
movq %rax, -0x30(%rbp)
jmp 0x2343c
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x23be0
cmpl $0x0, %eax
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
cltq
movq %rax, -0x30(%rbp)
jmp 0x2343c
callq 0x6070
jmp 0x2343e
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0x8d60
movq %rax, -0x40(%rbp)
movq -0x40(%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 0x23481
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0x7a10
movq -0x40(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x234ab
movq -0x10(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x7a10
movq -0x28(%rbp), %rcx
movl 0x10(%rcx), %eax
addl $-0x1, %eax
movl %eax, 0x10(%rcx)
cmpl $0x0, %eax
jg 0x234ca
movq -0x10(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x7a10
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)