// File: /workspace/github_c_makefile_star2_O1/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
pushq %r15
pushq %r14
pushq %rbx
subq $0x88, %rsp
movl %edi, %ebx
movl $0x0, 0xc(%rsp)
callq 0x12d49
cmpl $0x0, 0x126c9(%rip)     # 0x25778
jne 0x1326e
movq 0x1288c(%rip), %rax     # 0x25948
movq %rax, 0x40(%rsp)
movups 0x12870(%rip), %xmm0    # 0x25938
movaps %xmm0, 0x30(%rsp)
movups 0x127b4(%rip), %xmm0    # 0x25888
movaps %xmm0, 0x70(%rsp)
movups 0x12798(%rip), %xmm0    # 0x25878
movaps %xmm0, 0x60(%rsp)
movups 0x1277c(%rip), %xmm0    # 0x25868
movaps %xmm0, 0x50(%rsp)
movq 0x127d0(%rip), %rax     # 0x258c8
movq %rax, 0x20(%rsp)
movups 0x127b4(%rip), %xmm0    # 0x258b8
movaps %xmm0, 0x10(%rsp)
movq 0x127b8(%rip), %rax     # 0x258c8
movq %rax, 0x12831(%rip)     # 0x25948
movups 0x1279a(%rip), %xmm0    # 0x258b8
movups %xmm0, 0x12813(%rip)    # 0x25938
movl $0x2, %edi
callq 0x10a77
movq 0x40(%rsp), %rax
movq %rax, 0x1280d(%rip)     # 0x25948
movaps 0x30(%rsp), %xmm0
movups %xmm0, 0x127f1(%rip)    # 0x25938
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movaps 0x70(%rsp), %xmm2
movups %xmm0, 0x1270b(%rip)    # 0x25868
movups %xmm1, 0x12714(%rip)    # 0x25878
movups %xmm2, 0x1271d(%rip)    # 0x25888
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x12741(%rip)    # 0x258b8
movq 0x20(%rsp), %rax
movq %rax, 0x12745(%rip)     # 0x258c8
cmpl $0x0, 0x125ee(%rip)     # 0x25778
jne 0x1326e
movl 0x12635(%rip), %r14d    # 0x257cc
movq 0x127aa(%rip), %rax     # 0x25948
movq %rax, 0x40(%rsp)
movups 0x1278e(%rip), %xmm0    # 0x25938
movaps %xmm0, 0x30(%rsp)
movups 0x126d2(%rip), %xmm0    # 0x25888
movaps %xmm0, 0x70(%rsp)
movups 0x126b6(%rip), %xmm0    # 0x25878
movaps %xmm0, 0x60(%rsp)
movups 0x1269a(%rip), %xmm0    # 0x25868
movaps %xmm0, 0x50(%rsp)
movq 0x126ee(%rip), %rax     # 0x258c8
movq %rax, 0x20(%rsp)
movups 0x126d2(%rip), %xmm0    # 0x258b8
movaps %xmm0, 0x10(%rsp)
movq 0x126d6(%rip), %rax     # 0x258c8
movq %rax, 0x1274f(%rip)     # 0x25948
movups 0x126b8(%rip), %xmm0    # 0x258b8
movups %xmm0, 0x12731(%rip)    # 0x25938
movl $0x2, %edi
callq 0x10a77
movq 0x40(%rsp), %rax
movq %rax, 0x1272b(%rip)     # 0x25948
movaps 0x30(%rsp), %xmm0
movups %xmm0, 0x1270f(%rip)    # 0x25938
movaps 0x50(%rsp), %xmm0
movaps 0x60(%rsp), %xmm1
movaps 0x70(%rsp), %xmm2
movups %xmm0, 0x12629(%rip)    # 0x25868
movups %xmm1, 0x12632(%rip)    # 0x25878
movups %xmm2, 0x1263b(%rip)    # 0x25888
movaps 0x10(%rsp), %xmm0
movups %xmm0, 0x1265f(%rip)    # 0x258b8
movq 0x20(%rsp), %rax
movq %rax, 0x12663(%rip)     # 0x258c8
cmpl $0x0, 0x1250c(%rip)     # 0x25778
je 0x1327c
addq $0x88, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl 0x1254a(%rip), %ebp     # 0x257cc
leal -0x1(%r14), %r15d
cmpl %r15d, %ebp
jge 0x132a0
movq 0x12586(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl $0x20, %edi
jmp 0x13332
movb $0x1, 0x12621(%rip)     # 0x258c8
movl %ebp, %eax
subl %r14d, %eax
incl %eax
movl %eax, 0x125c4(%rip)     # 0x25878
jne 0x132ed
movq 0x125fb(%rip), %rax     # 0x258b8
movq 0x10(%rax), %rdi
cmpl $0x6, 0xc0(%rdi)
jne 0x132ed
addq $0x10, %rdi
movl $0x1, %esi
callq 0x911c
movq %rax, 0x12589(%rip)     # 0x25868
testl %r14d, %r14d
jle 0x132ed
cmpl 0xc(%rax), %ebp
jle 0x1339c
movq 0x125c4(%rip), %rax     # 0x258b8
movq 0x10(%rax), %rdi
movl 0x125c2(%rip), %esi     # 0x258c0
movsbl %bl, %ebx
movl %ebx, (%rsp)
leaq 0x1255d(%rip), %rcx     # 0x25868
leaq 0x1255e(%rip), %r8      # 0x25870
leaq 0x1255b(%rip), %r9      # 0x25874
movl %r14d, %edx
callq 0xf043
testl %eax, %eax
je 0x13344
movq 0x124ec(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl %eax, %edi
addq $0x88, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xd1a9
cmpl %r14d, %ebp
jle 0x1326e
movq 0x12564(%rip), %rax     # 0x258b8
movq 0x10(%rax), %rdi
movl 0x12562(%rip), %esi     # 0x258c0
movl 0x12468(%rip), %edx     # 0x257cc
movl %ebx, (%rsp)
leaq 0x124fa(%rip), %rcx     # 0x25868
leaq 0xc(%rsp), %r8
leaq 0x50(%rsp), %r9
callq 0xf043
testl %eax, %eax
je 0x1326e
movq 0x1248c(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl %eax, %edi
callq 0xd1a9
jmp 0x1326e
movl $0x1, 0x124ca(%rip)     # 0x25870
movl %r15d, 0x124c7(%rip)    # 0x25874
jmp 0x1326e