// File: /workspace/github_c_makefile_star2_O0/heltilda[P]cicada/bytecd.c
// Function: sticsStep
void sticsStep(ccBool allowAddMember)
{
    ccInt firstIndex, lastIndex, secondMemberNumber = 0, secondOffset, rtrn;
    
    
        // get the first steps in the path
    
    callSearchPathFunction();
    if (errCode != passed)  return;
    
    
        // get the first index to step into
    
    firstIndex = callIndexFunction();
    if (errCode != passed)  return;
    
    
        // get the last index to step into
    
    lastIndex = callIndexFunction();
    if (errCode != passed)  return;
    
    if (lastIndex < firstIndex-1)  {  setError(index_argument_err, pcCodePtr-1);  return;  }
    
    
    searchView.multipleIndices = ccTrue;
    GL_Path.indices = lastIndex - firstIndex + 1;
    
    
        // special case:  allow us to step into 0 indices of a size-0 array
    
    if ((GL_Path.indices == 0) && (searchView.windowPtr->variable_ptr->type == array_type))  {
        GL_Path.stemMember = LL_member(searchView.windowPtr->variable_ptr, 1);
        if ((firstIndex >= 1) && (lastIndex <= GL_Path.stemMember->indices))  {
            GL_Path.stemMemberNumber = 1;
            GL_Path.offset = firstIndex - 1;
            
            return;
    }   }
    
    
        // otherwise find the first and last indices, and make sure they're in the same member
    
    rtrn = findMemberIndex(searchView.windowPtr->variable_ptr, searchView.offset, firstIndex, &(GL_Path.stemMember),
                                                                &(GL_Path.stemMemberNumber), &(GL_Path.offset), allowAddMember);
    if (rtrn != passed)  {  setError(rtrn, pcCodePtr-1);  return;  }
    
    if (lastIndex > firstIndex)  {
        rtrn = findMemberIndex(searchView.windowPtr->variable_ptr, searchView.offset, intRegister, &(GL_Path.stemMember),
                                                    &secondMemberNumber, &secondOffset, allowAddMember);
        if (rtrn != passed)  setError(rtrn, pcCodePtr-1);       }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dil, %al
movb %al, -0x1(%rbp)
movl $0x0, -0x10(%rbp)
callq 0x17b20
cmpl $0x0, 0x14967(%rip)     # 0x2c768
je 0x17e08
jmp 0x17f99
callq 0x17cb0
movl %eax, -0x8(%rbp)
cmpl $0x0, 0x14951(%rip)     # 0x2c768
je 0x17e1e
jmp 0x17f99
callq 0x17cb0
movl %eax, -0xc(%rbp)
cmpl $0x0, 0x1493b(%rip)     # 0x2c768
je 0x17e34
jmp 0x17f99
movl -0xc(%rbp), %eax
movl -0x8(%rbp), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x17e5b
movq 0x149c0(%rip), %rsi     # 0x2c808
addq $-0x4, %rsi
movl $0x20, %edi
callq 0xf740
jmp 0x17f99
movb $0x1, 0x14a56(%rip)     # 0x2c8b8
movl -0xc(%rbp), %eax
subl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, 0x149f7(%rip)     # 0x2c868
cmpl $0x0, 0x149f0(%rip)     # 0x2c868
jne 0x17ee0
movq 0x14a27(%rip), %rax     # 0x2c8a8
movq 0x10(%rax), %rax
cmpl $0x6, 0xc0(%rax)
jne 0x17ee0
movq 0x14a13(%rip), %rax     # 0x2c8a8
movq 0x10(%rax), %rdi
addq $0x10, %rdi
movl $0x1, %esi
callq 0x9700
movq %rax, 0x149aa(%rip)     # 0x2c858
cmpl $0x1, -0x8(%rbp)
jl 0x17ede
movl -0xc(%rbp), %eax
movq 0x1499a(%rip), %rcx     # 0x2c858
cmpl 0xc(%rcx), %eax
jg 0x17ede
movl $0x1, 0x14993(%rip)     # 0x2c860
movl -0x8(%rbp), %eax
subl $0x1, %eax
movl %eax, 0x1498b(%rip)     # 0x2c864
jmp 0x17f99
jmp 0x17ee0
movq 0x149c1(%rip), %rax     # 0x2c8a8
movq 0x10(%rax), %rdi
movl 0x149bf(%rip), %esi     # 0x2c8b0
movl -0x8(%rbp), %edx
leaq 0x14855(%rip), %rcx     # 0x2c750
addq $0x108, %rcx            # imm = 0x108
movq %rcx, %r8
addq $0x8, %r8
movq %rcx, %r9
addq $0xc, %r9
movsbl -0x1(%rbp), %eax
movl %eax, (%rsp)
callq 0x128f0
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
je 0x17f3a
movl -0x18(%rbp), %edi
movq 0x148d9(%rip), %rsi     # 0x2c808
addq $-0x4, %rsi
callq 0xf740
jmp 0x17f99
movl -0xc(%rbp), %eax
cmpl -0x8(%rbp), %eax
jle 0x17f99
movq 0x1495f(%rip), %rax     # 0x2c8a8
movq 0x10(%rax), %rdi
movl 0x1495d(%rip), %esi     # 0x2c8b0
movl 0x14863(%rip), %edx     # 0x2c7bc
leaq 0x147f0(%rip), %rcx     # 0x2c750
addq $0x108, %rcx            # imm = 0x108
leaq -0x10(%rbp), %r8
leaq -0x14(%rbp), %r9
movsbl -0x1(%rbp), %eax
movl %eax, (%rsp)
callq 0x128f0
movl %eax, -0x18(%rbp)
cmpl $0x0, -0x18(%rbp)
je 0x17f97
movl -0x18(%rbp), %edi
movq 0x1487a(%rip), %rsi     # 0x2c808
addq $-0x4, %rsi
callq 0xf740
jmp 0x17f99
addq $0x20, %rsp
popq %rbp
retq
nop