LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: printNumber
void printNumber(char *destString, ccFloat numberToPrint, ccInt *characterCount, ccInt numberType)
{
    char theChars[50];
    
    if (numberType != double_type)  *characterCount = sprintf(theChars, printIntFormatString, (ccInt) numberToPrint);
    else  *characterCount = sprintf(theChars, print_stringFloatFormatString, maxDigits, numberToPrint);
    
    if (destString != NULL)  memcpy((void *) destString, (void *) theChars, *characterCount);
    
    return;
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, %rbx
cmpl $0x3, %edx
jne 0xddae
leaq 0x143c6(%rip), %rax     # 0x22158
movq (%rax), %rsi
leaq 0x179c4(%rip), %rax     # 0x25760
movl 0x1f8(%rax), %edx
movq %rsp, %rdi
movb $0x1, %al
callq 0x8080
jmp 0xddc6
leaq 0x143b3(%rip), %rax     # 0x22168
movq (%rax), %rsi
cvttsd2si %xmm0, %edx
movq %rsp, %rdi
xorl %eax, %eax
callq 0x8080
movl %eax, (%r14)
testq %rbx, %rbx
je 0xdddc
movslq %eax, %rdx
movq %rsp, %rsi
movq %rbx, %rdi
callq 0x8110
addq $0x38, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: sizeDataString
void sizeDataString(view *theView, void *dataSize, void *dummy)
{
    ccInt counter, numChars;
    
    if (theView->windowPtr->variable_ptr->type == bool_type)  {
    for (counter = 1; counter <= theView->width; counter++)  {
        loadBoolRegister(theView->windowPtr->variable_ptr, theView->offset+counter-1);
        if (boolRegister)  numChars = 4;
        else  numChars = 5;
        if (numChars < fieldWidth)  numChars = fieldWidth;
        *(ccInt *) dataSize += numChars;
    }}
    
    else if (theView->windowPtr->variable_ptr->type == char_type)  {
        *(ccInt *) dataSize += theView->width;        }
    
    else  {
    for (counter = 1; counter <= theView->width; counter++)  {
        loadDoubleRegister(theView->windowPtr->variable_ptr, theView->offset+counter-1);
        printNumber(NULL, doubleRegister, &numChars, theView->windowPtr->variable_ptr->type);
        if (numChars < fieldWidth)  numChars = fieldWidth;
        *(ccInt *) dataSize += numChars;
    }}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %rbx
movq (%rdi), %rax
movq 0x10(%rax), %rax
movl 0xc0(%rax), %ecx
movl 0xc(%rdi), %eax
cmpl $0x1, %ecx
je 0xde88
movq %rdi, %r14
testl %ecx, %ecx
jne 0xde8c
testl %eax, %eax
jle 0xdeee
xorl %ebp, %ebp
leaq 0x1790f(%rip), %r15     # 0x25760
movq (%r14), %rax
movq 0x10(%rax), %rdi
movl 0x8(%r14), %esi
addl %ebp, %esi
callq 0x161ef
cmpb $0x1, 0x68(%r15)
movl $0x0, %eax
adcl $0x4, %eax
movl 0x1fc(%r15), %ecx
cmpl %ecx, %eax
cmovlel %ecx, %eax
addl %eax, (%rbx)
incl %ebp
cmpl 0xc(%r14), %ebp
jl 0xde51
jmp 0xdeee
addl %eax, (%rbx)
jmp 0xdeee
testl %eax, %eax
jle 0xdeee
xorl %r12d, %r12d
leaq 0x178c6(%rip), %r13     # 0x25760
leaq 0x4(%rsp), %r15
movq (%r14), %rax
movq 0x10(%rax), %rdi
movl 0x8(%r14), %esi
addl %r12d, %esi
callq 0x157f6
movsd 0x70(%r13), %xmm0
movq (%r14), %rax
movq 0x10(%rax), %rax
movl 0xc0(%rax), %edx
xorl %edi, %edi
movq %r15, %rsi
callq 0xdd79
movl 0x4(%rsp), %eax
movl 0x1fc(%r13), %ecx
cmpl %ecx, %eax
cmovgl %eax, %ecx
movl %ecx, 0x4(%rsp)
addl %ecx, (%rbx)
incl %r12d
cmpl 0xc(%r14), %r12d
jl 0xde9f
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: readStringFromString
void readStringFromString(view *theView, ccInt stringIndex, void *sourcePtr, void *overflowMarker)
{
    member *stringMember;
    view stringView;
    linkedlist *stringLL;
    ccInt newStringSize = 0, charType = lettertype(*(char **) sourcePtr);
    
    stringMember = LL_member(theView->windowPtr->variable_ptr, stringIndex);
    stringView.windowPtr = stringMember->memberWindow;
    stringLL = &(stringMember->memberWindow->variable_ptr->mem.data);


        // the leading spaces are skipped even for a string-to-string copy
        
    while ((charType == a_space) || (charType == a_eol) || (charType == unprintable))
        {  (*(char **) sourcePtr)++;  charType = lettertype(*(char **) sourcePtr);  }
    while ((charType == a_letter) || (charType == a_number) || (charType == a_symbol))
        {  newStringSize++;  charType = lettertype(((*(char **) sourcePtr)+newStringSize));  }
    
    resizeMember(stringMember, 1, newStringSize);
    if (errCode != passed)  return;
    
    setElements(stringLL, stringMember->memberWindow->offset+1,
            stringMember->memberWindow->offset+stringLL->elementNum, *(void **) sourcePtr);
    *(char **) sourcePtr += newStringSize;
    if (newStringSize == 0)  {
        if (warningCode == passed)  ((char **) overflowMarker)[1] = *(char **) sourcePtr;
        setWarning(string_read_err, pcCodePtr-1);       }
    
    if ((**(char **) sourcePtr == 0) && (*(char **) sourcePtr < *(char **) overflowMarker))  (*(char **) sourcePtr) += 1;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, (%rsp)
movq %rdx, %rbx
movq (%rdx), %rax
movzbl (%rax), %eax
leaq 0x140ea(%rip), %rbp     # 0x22180
movl (%rbp,%rax,4), %r14d
movq (%rdi), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
callq 0x91d8
movq %rax, %r12
movq (%rax), %rax
movq 0x10(%rax), %r15
cmpl $0x2, %r14d
ja 0xe0d5
movq (%rbx), %rax
incq %rax
movq %rax, (%rbx)
movzbl (%rax), %ecx
movl (%rbp,%rcx,4), %r14d
incq %rax
cmpl $0x3, %r14d
jb 0xe0c1
addl $-0x3, %r14d
xorl %r13d, %r13d
cmpl $0x2, %r14d
ja 0xe0fd
movq (%rbx), %rax
xorl %r13d, %r13d
movzbl 0x1(%rax,%r13), %ecx
incq %r13
movl (%rbp,%rcx,4), %ecx
addl $-0x3, %ecx
cmpl $0x3, %ecx
jb 0xe0e8
movq %r12, %rdi
movl $0x1, %esi
movl %r13d, %edx
callq 0x12023
leaq 0x1764c(%rip), %rbp     # 0x25760
cmpl $0x0, 0x18(%rbp)
jne 0xe18d
addq $0x10, %r15
movq (%r12), %rax
movl 0x18(%rax), %edx
leal 0x1(%rdx), %esi
addl (%r15), %edx
movq (%rbx), %rcx
movq %r15, %rdi
callq 0x8fba
movl %r13d, %eax
addq (%rbx), %rax
movq %rax, (%rbx)
testl %r13d, %r13d
jne 0xe179
cmpl $0x0, 0x20(%rbp)
jne 0xe152
movq (%rsp), %rcx
movq %rax, 0x8(%rcx)
movq 0xb8(%rbp), %rdi
addq $-0x4, %rdi
leaq 0x20(%rbp), %rdx
leaq 0x24(%rbp), %rcx
addq $0x48, %rbp
movl $0x5, %esi
movq %rbp, %r8
callq 0xef9a
movq (%rbx), %rax
cmpb $0x0, (%rax)
jne 0xe18d
movq (%rsp), %rcx
cmpq (%rcx), %rax
jae 0xe18d
incq %rax
movq %rax, (%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: passDataView
void passDataView(view *theView, void *ptrHandle, void *infoHandle)
{
    variable *theVar = theView->windowPtr->variable_ptr;
    ccInt rtrn;

    rtrn = defragmentLinkedList(&(theVar->mem.data));
    if (rtrn != passed)  {  setError(out_of_memory_err, pcCodePtr-1);  return;  }

    if (theView->offset == theVar->mem.data.elementNum)  
        **(char ***) ptrHandle = ((char *) theVar->mem.data.memory) + sublistHeaderSize;
    else  **(char ***) ptrHandle = (char *) element(&(theVar->mem.data), theView->offset+1);
    (*(arg_info **) infoHandle)->argType = theVar->type;
    (*(arg_info **) infoHandle)->argIndices = theView->width;
    (*(char ***) ptrHandle)++;
    (*(arg_info **) infoHandle)++;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %rdx, %rbx
movq %rsi, %r14
movq %rdi, %r15
movq (%rdi), %rax
movq 0x10(%rax), %r13
leaq 0x10(%r13), %r12
movq %r12, %rdi
callq 0x8c00
testl %eax, %eax
je 0xe266
leaq 0x17524(%rip), %r8      # 0x25760
movq 0xb8(%r8), %rdi
addq $-0x4, %rdi
leaq 0x18(%r8), %rdx
leaq 0x1c(%r8), %rcx
addq $0x28, %r8
movl $0x1, %esi
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
jmp 0xef9a
movl 0x8(%r15), %esi
cmpl (%r12), %esi
jne 0xe27a
movq 0x18(%r13), %rax
addq $0x18, %rax
jmp 0xe284
incl %esi
movq %r12, %rdi
callq 0x91d8
movq (%r14), %rcx
movq %rax, (%rcx)
movl 0xc0(%r13), %eax
movq (%rbx), %rcx
movl %eax, (%rcx)
movl 0xc(%r15), %eax
movl %eax, 0x4(%rcx)
addq $0x8, (%r14)
addq $0x8, (%rbx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: printData
void printData(view *theView, void *bufferPtr, void *dummy)
{
    ccInt counter, windowOffset = theView->offset, theType = theView->windowPtr->variable_ptr->type;
    variable *theVar = theView->windowPtr->variable_ptr;
    unsigned char theChar;
    
    for (counter = windowOffset; counter < windowOffset+theView->width; counter++)  {
        
        if (theType == char_type)  {
            loadIntRegister(theVar, counter);
            theChar = (unsigned char) intRegister;
            if (lettertype(&theChar) != unprintable)  printf("%c", (unsigned char) theChar);
            else  printf("\\%c%c", hexDigit(theChar/16), hexDigit(theChar % 16));     }
        
        else if (theType == int_type)  {
            loadIntRegister(theVar, counter);
            printf(printIntFormatString, (ccInt) intRegister);     }
        
        else if (theType == double_type)  {
            loadDoubleRegister(theVar, counter);
            printf(printFloatFormatString, (ccFloat) doubleRegister);  }
        
        else if (theType == bool_type)  {
            loadBoolRegister(theVar, counter);
            if (boolRegister)  printf("true");
            else  printf("false");      }
    }
}

// Assembly:
cmpl $0x0, 0xc(%rdi)
jle 0xeaee
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl 0x8(%rdi), %r15d
movq (%rdi), %rax
movq 0x10(%rax), %r14
movl 0xc0(%r14), %r13d
movl %r13d, %r12d
movl %r15d, %ebp
cmpl $0x3, %r13d
ja 0xead0
leaq 0xd317(%rip), %rcx      # 0x1bce0
movslq (%rcx,%r12,4), %rax
addq %rcx, %rax
jmpq *%rax
movq %r14, %rdi
movl %ebp, %esi
callq 0x161ef
leaq 0x16d7d(%rip), %rax     # 0x25760
cmpb $0x0, 0x68(%rax)
je 0xea78
leaq 0xcbaa(%rip), %rdi      # 0x1b59e
jmp 0xea7f
movq %r14, %rdi
movl %ebp, %esi
callq 0x157cf
leaq 0x1375e(%rip), %rax     # 0x22168
movq (%rax), %rdi
leaq 0x16d4c(%rip), %rax     # 0x25760
movl 0x6c(%rax), %esi
xorl %eax, %eax
callq 0x8050
jmp 0xead0
movq %r14, %rdi
movl %ebp, %esi
callq 0x157f6
leaq 0x1371c(%rip), %rax     # 0x22150
movq (%rax), %rdi
leaq 0x16d22(%rip), %rax     # 0x25760
movsd 0x70(%rax), %xmm0
movb $0x1, %al
callq 0x8050
jmp 0xead0
movq %r14, %rdi
movl %ebp, %esi
callq 0x157cf
leaq 0x16d00(%rip), %rax     # 0x25760
movzbl 0x6c(%rax), %edi
leaq 0x13715(%rip), %rax     # 0x22180
cmpl $0x0, (%rax,%rdi,4)
je 0xea88
callq 0x81e0
jmp 0xead0
leaq 0xcb11(%rip), %rdi      # 0x1b590
xorl %eax, %eax
callq 0x8050
jmp 0xead0
movl %edi, %eax
shrb $0x4, %al
leal 0x30(%rax), %ecx
addb $0x37, %al
cmpb $-0x60, %dil
movzbl %cl, %ecx
movzbl %al, %esi
cmovbl %ecx, %esi
movl $0xff, %r8d
andl %r8d, %esi
andb $0xf, %dil
leal 0x30(%rdi), %eax
leal 0x37(%rdi), %ecx
cmpb $0xa, %dil
movzbl %al, %eax
movzbl %cl, %edx
cmovbl %eax, %edx
andl %r8d, %edx
leaq 0xd267(%rip), %rdi      # 0x1bd30
xorl %eax, %eax
callq 0x8050
incl %ebp
movl 0xc(%rbx), %eax
addl %r15d, %eax
cmpl %eax, %ebp
jl 0xe9b8
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: printString
void printString(view *theView, ccInt stringIndex, void *bufferPtr, void *sizeofStrings)
{
    view charView;
    member *charMember = LL_member(theView->windowPtr->variable_ptr, stringIndex);
    
    charView.windowPtr = charMember->memberWindow;
    charView.offset = charView.windowPtr->offset;
    charView.width = charMember->indices;
    
    printData(&charView, bufferPtr, sizeofStrings);
}

// Assembly:
subq $0x18, %rsp
movq (%rdi), %rax
movq 0x10(%rax), %rdi
addq $0x10, %rdi
callq 0x91d8
movq (%rax), %rcx
movq %rsp, %rdi
movq %rcx, (%rdi)
movl 0x18(%rcx), %ecx
movl %ecx, 0x8(%rdi)
movl 0xc(%rax), %eax
movl %eax, 0xc(%rdi)
callq 0xe988
addq $0x18, %rsp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: findMemberID
ccInt findMemberID(variable *theObject, ccInt soughtMemberID, member **soughtMember, ccInt *soughtMemberNumber,
                ccBool allowAddMember, ccBool ifHiddenMember)
{
    ccInt counter, rtrn;
    linkedlist *membersList;
    
    if (theObject->type < composite_type)  return member_not_found_err;
    membersList = &(theObject->mem.members);
    
    for (counter = 1; counter <= membersList->elementNum; counter++)   {
        *soughtMember = (member *) element(membersList, counter);
        if ((*soughtMember)->memberID == soughtMemberID)   {
            *soughtMemberNumber = counter;
            return passed;
    }   }
    
    if (!allowAddMember)  {
        *soughtMember = NULL;
        rtrn = member_not_found_err;        }
    
    else  {
        *soughtMemberNumber = theObject->mem.members.elementNum + 1;
        rtrn = addMember(theObject, *soughtMemberNumber, 1, soughtMember, ifHiddenMember, 1, ccTrue);
        if (rtrn == passed)  (*soughtMember)->memberID = soughtMemberID;        }
    
    return rtrn;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movl $0x17, %ebp
cmpl $0x5, 0xc0(%rdi)
jl 0xed50
movq %rdx, %rbx
movl %esi, %r14d
movq %rdi, %r12
movl %r8d, 0xc(%rsp)
movq %rcx, 0x10(%rsp)
movl %r9d, 0x8(%rsp)
movl 0x10(%rdi), %esi
testl %esi, %esi
jle 0xecf8
leaq 0x10(%r12), %r13
movl $0x1, %r15d
movq %r13, %rdi
movl %r15d, %esi
callq 0x91d8
movq %rax, (%rbx)
cmpl %r14d, 0x8(%rax)
je 0xed3d
leal 0x1(%r15), %eax
movl (%r13), %esi
cmpl %esi, %r15d
movl %eax, %r15d
jl 0xecd4
cmpb $0x0, 0xc(%rsp)
je 0xed49
incl %esi
movq 0x10(%rsp), %rax
movl %esi, (%rax)
movl $0x1, (%rsp)
movsbl 0x8(%rsp), %r8d
movl $0x1, %ebp
movq %r12, %rdi
movl $0x1, %edx
movq %rbx, %rcx
movl $0x1, %r9d
callq 0xed61
testl %eax, %eax
jne 0xed50
movq (%rbx), %rax
movl %r14d, 0x8(%rax)
jmp 0xed45
movq 0x10(%rsp), %rax
movl %r15d, (%rax)
xorl %ebp, %ebp
jmp 0xed50
movq $0x0, (%rbx)
movl %ebp, %eax
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: addMember
ccInt addMember(variable *hostVariable, ccInt newMemberNumber, ccInt newIndices, member **newMember, ccBool ifHidden,
        const ccInt membersToAdd, const ccBool doWrite)
{
    linkedlist *memberLL = &(hostVariable->mem.members);
    ccInt rtrn;
    
    
        // add the new member and write its fields
    
    if (membersToAdd > 0)  {
        rtrn = insertElements(memberLL, newMemberNumber, membersToAdd, ccFalse);
        if (rtrn != passed)  return out_of_memory_err;      }
    
    if (doWrite)  {
        *newMember = (member *) element(memberLL, newMemberNumber);
        (*newMember)->indices = newIndices;
        (*newMember)->memberWindow = NULL;
        (*newMember)->type = no_type;
        (*newMember)->eventualType = no_type;
        (*newMember)->arrayDepth = 0;
        (*newMember)->ifHidden = ifHidden;
        (*newMember)->business = 0;
        
        rtrn = newLinkedList(&((*newMember)->codeList), 0, sizeof(code_ref), 0., ccFalse);
        if (rtrn != passed)  return out_of_memory_err;          }
    
    return passed;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %r8d, %ebx
movq %rcx, %r14
movl %edx, %ebp
movl %esi, %r15d
movq %rdi, %r12
addq $0x10, %r12
testl %r9d, %r9d
jle 0xed9b
movq %r12, %rdi
movl %r15d, %esi
movl %r9d, %edx
xorl %ecx, %ecx
callq 0x84af
movl %eax, %ecx
movl $0x1, %eax
testl %ecx, %ecx
jne 0xedf8
cmpb $0x0, 0x30(%rsp)
je 0xedf6
movq %r12, %rdi
movl %r15d, %esi
callq 0x91d8
movq %rax, (%r14)
movl %ebp, 0xc(%rax)
movq $0x0, (%rax)
movq (%r14), %rdi
movabsq $0x700000007, %rax      # imm = 0x700000007
movq %rax, 0x10(%rdi)
xorl %eax, %eax
movl %eax, 0x18(%rdi)
movb %bl, 0x40(%rdi)
movl %eax, 0x44(%rdi)
addq $0x20, %rdi
xorps %xmm0, %xmm0
xorl %esi, %esi
movl $0x20, %edx
xorl %ecx, %ecx
callq 0x83e1
movl %eax, %ecx
movl $0x1, %eax
testl %ecx, %ecx
jne 0xedf8
xorl %eax, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: numMemberIndices
ccInt numMemberIndices(view *theView)
{
    ccInt memberCounter, topIndex;
    variable *theVariable = theView->windowPtr->variable_ptr;
    
    if (theVariable->type == composite_type)  {
        topIndex = 0;
        for (memberCounter = 1; memberCounter <= theVariable->mem.members.elementNum; memberCounter++)  {
        if (!(LL_member(theVariable, memberCounter)->ifHidden))  {
            topIndex ++;
    }   }}
    
    else if (theVariable->type == array_type)  topIndex = (LL_member(theVariable, 1))->indices;
    
    else  topIndex = (LL_member(theVariable, theView->offset+1))->indices;
    
    return topIndex;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movq (%rdi), %rax
movq 0x10(%rax), %rbx
movl 0xc0(%rbx), %eax
addq $0x10, %rbx
cmpl $0x6, %eax
je 0xef78
cmpl $0x5, %eax
jne 0xef7f
cmpl $0x0, (%rbx)
jle 0xef96
xorl %r14d, %r14d
xorl %ebp, %ebp
incl %r14d
movq %rbx, %rdi
movl %r14d, %esi
callq 0x91d8
cmpb $0x1, 0x40(%rax)
adcl $0x0, %ebp
cmpl (%rbx), %r14d
jl 0xef5c
jmp 0xef8f
movl $0x1, %esi
jmp 0xef84
movl 0x8(%rdi), %esi
incl %esi
movq %rbx, %rdi
callq 0x91d8
movl 0xc(%rax), %ebp
movl %ebp, %eax
popq %rbx
popq %r14
popq %rbp
retq
xorl %ebp, %ebp
jmp 0xef8f
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: setErrIndex
void setErrIndex(ccInt *errPtr, ccInt theError, ccInt *errCodePtr, ccInt *errIndexPtr, code_ref *errScriptPtr)
{
    *errCodePtr = theError;
    
    if (errScriptPtr->code_ptr != NULL)  derefCodeRef(errScriptPtr);
    *errScriptPtr = PCCodeRef;
    errScriptPtr->anchor = NULL;
    refCodeRef(errScriptPtr);
    
    *errIndexPtr = ((ccInt) (errPtr - errScriptPtr->code_ptr)) + 1;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %r8, %r15
movq %rcx, %rbx
movq %rdi, %r14
movl %esi, (%rdx)
cmpq $0x0, 0x10(%r8)
je 0xefc6
movq 0x8(%r15), %rdi
movl (%r15), %esi
callq 0xfa53
leaq 0x18(%r15), %rdi
callq 0xf72e
leaq 0x16793(%rip), %rax     # 0x25760
movups 0x208(%rax), %xmm0
movups %xmm0, (%r15)
movq 0x218(%rax), %rax
movq %rax, 0x10(%r15)
movq $0x0, 0x18(%r15)
movq 0x8(%r15), %rax
incl (%rax)
xorl %edi, %edi
callq 0xf809
subq 0x10(%r15), %r14
shrq $0x2, %r14
incl %r14d
movl %r14d, (%rbx)
popq %rbx
popq %r14
popq %r15
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: addVariable
ccInt addVariable(variable **theNewVar, ccInt variableType, ccInt eventualVariableType, ccInt arrayDepth, ccBool makeSpareRoom)
{
    ccInt newVarIndex, rtrn;
    ccFloat freeSpace;
    
    rtrn = addPLLElement(&VariableList, (void **) theNewVar, &newVarIndex);
    if (rtrn != passed)  return rtrn;
    
    (*theNewVar)->PLL_index = newVarIndex;
    (*theNewVar)->references = LL_int(&(VariableList.references), newVarIndex);
    (*(*theNewVar)->references) = 0;         // the windows are all the references we want
    
    rtrn = newLinkedList(&((*theNewVar)->codeList), 0, sizeof(code_ref), 0., ccFalse);
    if (rtrn != passed)  return out_of_memory_err;
    
    rtrn = newPLL(&((*theNewVar)->windows), 0, sizeof(window), LLFreeSpace);
    if (rtrn != passed)  return rtrn;
    rtrn = newPLL(&((*theNewVar)->pathList), 3, sizeof(searchPath), LLFreeSpace);        // why 3?
    if (rtrn != passed)  return rtrn;
    
    if (makeSpareRoom)  freeSpace = LLFreeSpace;
    else  freeSpace = 0.;
    rtrn = newLinkedList(&((*theNewVar)->mem.data), 0, typeSizes[variableType], freeSpace, ccFalse);
    if (rtrn != passed)  return out_of_memory_err;
    
    (*theNewVar)->type = variableType;
    (*theNewVar)->eventualType = eventualVariableType;
    (*theNewVar)->arrayDepth = arrayDepth;
    (*theNewVar)->instances = 0;
    (*theNewVar)->business = 0;
    
    return passed;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %r8d, %r12d
movl %ecx, %ebx
movl %edx, %ebp
movl %esi, %r14d
movq %rdi, %r15
leaq 0x1669a(%rip), %rdi     # 0x256f0
leaq 0x4(%rsp), %rdx
movq %r15, %rsi
callq 0x92dc
testl %eax, %eax
je 0xf06c
movl %eax, %r13d
jmp 0xf0b7
movl 0x4(%rsp), %esi
movq (%r15), %rax
movl %esi, (%rax)
leaq 0x16694(%rip), %rdi     # 0x25710
callq 0x91d8
movq (%r15), %rcx
movq %rax, 0x8(%rcx)
movq (%r15), %rdi
movq 0x8(%rdi), %rax
movl $0x0, (%rax)
addq $0xd0, %rdi
xorps %xmm0, %xmm0
xorl %esi, %esi
movl $0x20, %edx
xorl %ecx, %ecx
callq 0x83e1
movl $0x1, %r13d
testl %eax, %eax
je 0xf0c9
movl %r13d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq (%r15), %rdi
addq $0x30, %rdi
movsd 0xbf30(%rip), %xmm0     # 0x1b008
xorl %esi, %esi
movl $0x28, %edx
callq 0x923c
testl %eax, %eax
jne 0xf067
movq (%r15), %rdi
addq $0x78, %rdi
movsd 0xbf0d(%rip), %xmm0     # 0x1b008
movl $0x3, %esi
movl $0x30, %edx
callq 0x923c
testl %eax, %eax
jne 0xf067
movsd 0xbeee(%rip), %xmm1     # 0x1b008
xorps %xmm0, %xmm0
testb %r12b, %r12b
je 0xf125
movaps %xmm1, %xmm0
movq (%r15), %rdi
addq $0x10, %rdi
movslq %r14d, %rax
leaq 0xcbca(%rip), %rcx      # 0x1bd00
movl (%rcx,%rax,4), %edx
xorl %esi, %esi
xorl %ecx, %ecx
callq 0x83e1
testl %eax, %eax
jne 0xf0b7
movq (%r15), %rax
movl %r14d, 0xc0(%rax)
movl %ebp, 0xc4(%rax)
movl %ebx, 0xc8(%rax)
movq $0x0, 0xf0(%rax)
xorl %r13d, %r13d
jmp 0xf0b7
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: derefVariable
void derefVariable(variable *theVariable)
{
    member *loopMember;
    ccInt counter, codeCounter;
    
    derefPLLPtr(&VariableList, theVariable->PLL_index, theVariable->references);
    if (*(theVariable->references) != 0)  return;
    
    if (theVariable->type >= string_type)  {
    for (counter = 1; counter <= theVariable->mem.members.elementNum; counter++)   {
        loopMember = LL_member(theVariable, counter);
        for (codeCounter = 1; codeCounter <= loopMember->codeList.elementNum; codeCounter++)   {
            derefCodeRef((code_ref *) element(&(loopMember->codeList), codeCounter));   }
        derefWindow(&(loopMember->memberWindow));
    }}
    
    deletePLL(&(theVariable->windows));     // All the windows must already have been deleted, since variables are referenced by the windows.
    deletePLL(&(theVariable->pathList));    // All search paths are already gone, since all the windows are gone.
    
    for (counter = 1; counter <= theVariable->codeList.elementNum; counter++)
        derefCodeRef((code_ref *) element(&(theVariable->codeList), counter));
    
    return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rdi, %rbx
movl (%rdi), %esi
movq 0x8(%rdi), %rdx
leaq 0x1655b(%rip), %rdi     # 0x256f0
callq 0x94c6
movq 0x8(%rbx), %rax
cmpl $0x0, (%rax)
jne 0xf26e
cmpl $0x4, 0xc0(%rbx)
jl 0xf220
cmpl $0x0, 0x10(%rbx)
jle 0xf220
leaq 0x10(%rbx), %rdi
movl $0x1, %r15d
movq %rdi, (%rsp)
movl %r15d, %esi
callq 0x91d8
movq %rax, %r12
cmpl $0x0, 0x20(%rax)
jle 0xf208
leaq 0x20(%r12), %r13
xorl %ebp, %ebp
incl %ebp
movq %r13, %rdi
movl %ebp, %esi
callq 0x91d8
movq %rax, %r14
movq 0x8(%rax), %rdi
movl (%rax), %esi
callq 0xfa53
addq $0x18, %r14
movq %r14, %rdi
callq 0xf72e
cmpl (%r13), %ebp
jl 0xf1dc
movq %r12, %rdi
callq 0xcfe2
leal 0x1(%r15), %eax
movq (%rsp), %rdi
cmpl (%rdi), %r15d
movl %eax, %r15d
jl 0xf1c4
leaq 0x30(%rbx), %rdi
callq 0x9289
leaq 0x78(%rbx), %rdi
callq 0x9289
cmpl $0x0, 0xd0(%rbx)
jle 0xf26e
addq $0xd0, %rbx
xorl %ebp, %ebp
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x91d8
movq %rax, %r14
movq 0x8(%rax), %rdi
movl (%rax), %esi
callq 0xfa53
addq $0x18, %r14
movq %r14, %rdi
callq 0xf72e
cmpl (%rbx), %ebp
jl 0xf244
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: unflagVariables
void unflagVariables(variable *theVariable, unsigned char theFlag)
{
    member *loopMember;
    ccInt counter;
    
    if (!isBusy(theVariable, theFlag))  return;
    clearBusy(theVariable, theFlag);
    
    if (theVariable->type >= composite_type)  {
        for (counter = 1; counter <= theVariable->mem.members.elementNum; counter++)  {
            loopMember = LL_member(theVariable, counter);
            if (loopMember->memberWindow != NULL)  unflagVariables(loopMember->memberWindow->variable_ptr, theFlag);  }}
    
    return;
}

// Assembly:
movl 0xf4(%rdi), %eax
testl %esi, %eax
je 0xf2db
pushq %rbp
pushq %r14
pushq %rbx
movq %rdi, %rbx
movl %esi, %ecx
notl %ecx
andl %ecx, %eax
movl %eax, 0xf4(%rdi)
cmpl $0x5, 0xc0(%rdi)
jl 0xf2d7
cmpl $0x0, 0x10(%rbx)
jle 0xf2d7
addq $0x10, %rbx
xorl %ebp, %ebp
movzbl %sil, %r14d
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x91d8
movq (%rax), %rax
testq %rax, %rax
je 0xf2d3
movq 0x10(%rax), %rdi
movl %r14d, %esi
callq 0xf27d
cmpl (%rbx), %ebp
jl 0xf2b3
popq %rbx
popq %r14
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: combBranch
void combBranch(variable *oneVariable, ccBool doSetFlag)
{
    ccInt counter;
    member *loopMember;
    searchPath *loopPath;
    
    if (oneVariable == NULL)  return;
    if (doSetFlag)  {
        if (isBusy(oneVariable, busy_comb_flag))  return;
        setBusy(oneVariable, busy_comb_flag);       }
    else  {
        if (!isBusy(oneVariable, busy_comb_flag))  return;
        clearBusy(oneVariable, busy_comb_flag);       }
    
    if (oneVariable->type >= composite_type)  {
        for (counter = 1; counter <= oneVariable->mem.members.elementNum; counter++)  {
            loopMember = LL_member(oneVariable, counter);
            if ((!isBusy(loopMember, busy_comb_flag)) && (loopMember->memberWindow != NULL))  {
                setBusy(loopMember, busy_comb_flag);
                combBranch(loopMember->memberWindow->variable_ptr, doSetFlag);
                clearBusy(loopMember, busy_comb_flag);
    }   }   }
    
    for (counter = 1; counter <= oneVariable->pathList.data.elementNum; counter++)  {
    if (*LL_int(&(oneVariable->pathList.references), counter) != 0)  {
        loopPath = (searchPath *) element(&(oneVariable->pathList.data), counter);
        if (loopPath->stem != NULL)  combBranch(loopPath->stem->variablePtr, doSetFlag);      // no need to do loopPath->variablePtr
    }}
    
    for (counter = 1; counter <= oneVariable->codeList.elementNum; counter++)  {
        loopPath = ((code_ref *) element(&(oneVariable->codeList), counter))->anchor;
        if (loopPath != NULL)  combBranch(loopPath->variablePtr, doSetFlag);         // anchors are NULL in err/w_script, thus usually in R_*_script
    }
    
    return;
}

// Assembly:
testq %rdi, %rdi
je 0xf68e
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq %rdi, %rbx
movl 0xf4(%rdi), %eax
testb %sil, %sil
je 0xf597
testb $0x8, %al
jne 0xf686
orl $0x8, %eax
jmp 0xf5a2
testb $0x8, %al
je 0xf686
andl $-0x9, %eax
movl %eax, 0xf4(%rbx)
cmpl $0x5, 0xc0(%rbx)
movsbl %sil, %ebp
jl 0xf601
cmpl $0x0, 0x10(%rbx)
jle 0xf601
leaq 0x10(%rbx), %r14
xorl %r15d, %r15d
incl %r15d
movq %r14, %rdi
movl %r15d, %esi
callq 0x91d8
movq %rax, %r12
movl 0x44(%rax), %eax
testb $0x8, %al
jne 0xf5fc
movq (%r12), %rcx
testq %rcx, %rcx
je 0xf5fc
orl $0x8, %eax
movl %eax, 0x44(%r12)
movq 0x10(%rcx), %rdi
movl %ebp, %esi
callq 0xf56b
andb $-0x9, 0x44(%r12)
cmpl (%r14), %r15d
jl 0xf5c2
cmpl $0x0, 0x78(%rbx)
jle 0xf64c
leaq 0x78(%rbx), %r14
leaq 0x98(%rbx), %r15
xorl %r12d, %r12d
incl %r12d
movq %r15, %rdi
movl %r12d, %esi
callq 0x91d8
cmpl $0x0, (%rax)
je 0xf647
movq %r14, %rdi
movl %r12d, %esi
callq 0x91d8
movq 0x20(%rax), %rax
testq %rax, %rax
je 0xf647
movq 0x10(%rax), %rdi
movl %ebp, %esi
callq 0xf56b
cmpl (%r14), %r12d
jl 0xf615
cmpl $0x0, 0xd0(%rbx)
jle 0xf686
addq $0xd0, %rbx
xorl %r14d, %r14d
incl %r14d
movq %rbx, %rdi
movl %r14d, %esi
callq 0x91d8
movq 0x18(%rax), %rax
testq %rax, %rax
je 0xf681
movq 0x10(%rax), %rdi
movl %ebp, %esi
callq 0xf56b
cmpl (%rbx), %r14d
jl 0xf65f
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: unlinkWindow
void unlinkWindow(variable *stemVariable, window **unlinkedWindow, ccInt stemMemberNumber)
{
    pinned_LL *unlinkedFibrilList = &((*unlinkedWindow)->variable_ptr->pathList);
    window *holdWindowPtr;
    searchPath *loopPath, *clippedStem;
    ccInt counter;
    
    for (counter = 1; counter <= unlinkedFibrilList->data.elementNum; counter++)  {
    if (*LL_int(&(unlinkedFibrilList->references), counter) != 0)  {
        loopPath = (searchPath *) element(&(unlinkedFibrilList->data), counter);
        if (loopPath->stem != NULL)  {
        if (loopPath->stem->variablePtr == stemVariable)  {
            clippedStem = loopPath->stem;
            loopPath->stem = NULL;
            derefPath(&clippedStem);
    }}  }}
    
    holdWindowPtr = *unlinkedWindow;
    *unlinkedWindow = NULL;
    derefWindow(&holdWindowPtr);        // We just deleted a link, so in any event dereference unlinkedWindow.    
    
    return;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rsi, %rbx
movq (%rsi), %rax
movq 0x10(%rax), %r15
cmpl $0x0, 0x78(%r15)
jle 0xf70b
movq %rdi, %r14
leaq 0x78(%r15), %r12
addq $0x98, %r15
xorl %ebp, %ebp
leaq 0x8(%rsp), %r13
incl %ebp
movq %r15, %rdi
movl %ebp, %esi
callq 0x91d8
cmpl $0x0, (%rax)
je 0xf702
movq %r12, %rdi
movl %ebp, %esi
callq 0x91d8
movq 0x20(%rax), %rcx
testq %rcx, %rcx
je 0xf702
cmpq %r14, 0x10(%rcx)
jne 0xf702
movq %rcx, 0x8(%rsp)
movq $0x0, 0x20(%rax)
movq %r13, %rdi
callq 0xf72e
cmpl (%r12), %ebp
jl 0xf6c3
movq (%rbx), %rax
leaq 0x10(%rsp), %rdi
movq %rax, (%rdi)
movq $0x0, (%rbx)
callq 0xcfe2
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: derefPath
void derefPath(searchPath **thePath)
{
    if (*thePath == NULL)  return;
    
    derefPLLPtr(&((*thePath)->variablePtr->pathList), (*thePath)->PLL_index, (*thePath)->references);
    if (*((*thePath)->references) != 0)  {  *thePath = NULL;  return;  }
    
            // if we're being deleted, we aren't the anchor for any other paths
    
    derefPath(&((*thePath)->stem));
    derefPLLElement(&MasterCodeList, (*thePath)->sourceCode);
    derefWindow(&((*thePath)->jamb));
    
    *thePath = NULL;
    
    return;
}

// Assembly:
movq (%rdi), %rax
testq %rax, %rax
je 0xf788
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rax), %rdi
addq $0x78, %rdi
movl (%rax), %esi
movq 0x8(%rax), %rdx
callq 0x94c6
movq (%rbx), %rdi
movq 0x8(%rdi), %rax
cmpl $0x0, (%rax)
jne 0xf780
addq $0x20, %rdi
callq 0xf72e
movq (%rbx), %rax
movl 0x2c(%rax), %esi
leaq 0x15f39(%rip), %rdi     # 0x256a8
callq 0x947f
movq (%rbx), %rdi
addq $0x18, %rdi
callq 0xcfe2
movq $0x0, (%rbx)
popq %rbx
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: removeMember
void removeMember(variable *theVariable, ccInt doomedMemberNumber)
{
    ccInt counter;
    member *doomedMember;
    
    doomedMember = LL_member(theVariable, doomedMemberNumber);
    
    
        // delete the member & associated codes & references
    
    if (doomedMember->memberWindow != NULL)  derefWindow(&(doomedMember->memberWindow));
    
    for (counter = 1; counter <= doomedMember->codeList.elementNum; counter++)  {
        derefCodeRef((code_ref *) element(&(doomedMember->codeList), counter));   }
    deleteLinkedList(&(doomedMember->codeList));
    
    deleteElement(&(theVariable->mem.members), doomedMemberNumber);
    
    return;     // we ignored return values from FDeleteElement -- an error is possible, but seems implausible to me.
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %esi, %ebx
movq %rdi, %r14
addq $0x10, %r14
movq %r14, %rdi
callq 0x91d8
movq %rax, %r15
movq %rax, %r12
cmpq $0x0, (%rax)
je 0xf7b6
movq %r12, %rdi
callq 0xcfe2
addq $0x20, %r15
cmpl $0x0, 0x20(%r12)
jle 0xf7ef
xorl %ebp, %ebp
incl %ebp
movq %r15, %rdi
movl %ebp, %esi
callq 0x91d8
movq %rax, %r12
movq 0x8(%rax), %rdi
movl (%rax), %esi
callq 0xfa53
addq $0x18, %r12
movq %r12, %rdi
callq 0xf72e
cmpl (%r15), %ebp
jl 0xf7c4
movq %r15, %rdi
callq 0x847e
movq %r14, %rdi
movl %ebx, %esi
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
jmp 0x8bc0
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: refPath
void refPath(searchPath *thePath)
{
    if (thePath == NULL)  return;
    
    RefPLLPtr(thePath->references);
    
    if (*(thePath->references) == 1)  {
        refPath(thePath->stem);
        refPLLElement(&MasterCodeList, thePath->sourceCode);
        refWindow(thePath->jamb);     }
    
    return;
}

// Assembly:
testq %rdi, %rdi
je 0xf822
pushq %rbx
movq %rdi, %rbx
movq 0x8(%rdi), %rax
movl (%rax), %ecx
leal 0x1(%rcx), %edx
movl %edx, (%rax)
testl %ecx, %ecx
je 0xf823
popq %rbx
retq
movq 0x20(%rbx), %rdi
callq 0xf809
movl 0x2c(%rbx), %esi
leaq 0x15e72(%rip), %rdi     # 0x256a8
callq 0x944e
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0xf821
movq 0x8(%rax), %rcx
movl (%rcx), %edx
leal 0x1(%rdx), %esi
movl %esi, (%rcx)
testl %edx, %edx
jne 0xf821
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
incl (%rax)
jmp 0xf821
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: drawPath
ccInt drawPath(searchPath **newPath, window *destWindow, searchPath *newPathStem, ccInt indices, ccInt sourceCode)
{
    ccInt newPathIndex, rtrn;
    
    rtrn = addPLLElement(&(destWindow->variable_ptr->pathList), (void **) newPath, &newPathIndex);
    if (rtrn != passed)  return rtrn;
    
    (*newPath)->PLL_index = newPathIndex;
    (*newPath)->references = LL_int(&(destWindow->variable_ptr->pathList.references), newPathIndex);
    (*newPath)->stemIndices = indices;
    (*newPath)->stem = newPathStem;
    (*newPath)->variablePtr = destWindow->variable_ptr;
    (*newPath)->sourceCode = sourceCode;
    (*newPath)->jamb = destWindow;
    
    *((*newPath)->references) = 0;
    return passed;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movl %r8d, %ebx
movl %ecx, %ebp
movq %rdx, %r12
movq %rsi, %r15
movq %rdi, %r14
movq 0x10(%rsi), %rdi
addq $0x78, %rdi
leaq 0x4(%rsp), %rdx
movq %r14, %rsi
callq 0x92dc
movl %eax, %r13d
testl %eax, %eax
jne 0xf8de
movl 0x4(%rsp), %esi
movq (%r14), %rax
movl %esi, (%rax)
movl $0x98, %edi
addq 0x10(%r15), %rdi
callq 0x91d8
movq (%r14), %rcx
movq %rax, 0x8(%rcx)
movq (%r14), %rax
movl %ebp, 0x28(%rax)
movq %r12, 0x20(%rax)
movq 0x10(%r15), %rax
movq (%r14), %rcx
movq %rax, 0x10(%rcx)
movq (%r14), %rax
movl %ebx, 0x2c(%rax)
movq %r15, 0x18(%rax)
movq (%r14), %rax
movq 0x8(%rax), %rax
movl $0x0, (%rax)
movl %r13d, %eax
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: derefCode
void derefCode(ccInt *refsPtr, ccInt refsID)
{
    derefPLLPtr(&MasterCodeList, refsID, refsPtr);
    if (refsPtr == NULL)  {
        if (storedCode(refsID)->fileName != NULL)  free((void *) storedCode(refsID)->fileName);
        if (storedCode(refsID)->sourceCode != NULL)  free((void *) storedCode(refsID)->sourceCode);
        if (storedCode(refsID)->opCharNum != NULL)  free((void *) storedCode(refsID)->opCharNum);
        free((void *) storedCode(refsID)->bytecode);        }
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movl %esi, %ebx
movq %rdi, %r14
leaq 0x15c45(%rip), %rdi     # 0x256a8
movq %r14, %rdx
callq 0x94c6
testq %r14, %r14
je 0xfa78
addq $0x8, %rsp
popq %rbx
popq %r14
retq
leaq 0x15c29(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
cmpq $0x0, (%rax)
je 0xfaa2
leaq 0x15c15(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
movq (%rax), %rdi
callq 0x81c0
leaq 0x15bff(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
cmpq $0x0, 0x8(%rax)
je 0xface
leaq 0x15bea(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
movq 0x8(%rax), %rdi
callq 0x81c0
leaq 0x15bd3(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
cmpq $0x0, 0x18(%rax)
je 0xfafa
leaq 0x15bbe(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
movq 0x18(%rax), %rdi
callq 0x81c0
leaq 0x15ba7(%rip), %rdi     # 0x256a8
movl %ebx, %esi
callq 0x91d8
movq 0x10(%rax), %rdi
addq $0x8, %rsp
popq %rbx
popq %r14
jmp 0x81c0
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: addCodeRef
ccInt addCodeRef(linkedlist *destCodeLL, searchPath *newAnchor, ccInt *codePtr, ccInt codeID)
{
    code_ref *newCodeRef;
    ccInt rtrn;
    
    rtrn = addElements(destCodeLL, 1, ccFalse);
    if (rtrn != passed)  return out_of_memory_err;
    
    newCodeRef = (code_ref *) element(destCodeLL, destCodeLL->elementNum);
    newCodeRef->PLL_index = codeID;
    newCodeRef->references = (ccInt *) element(&(MasterCodeList.references), codeID);
    newCodeRef->code_ptr = codePtr;
    newCodeRef->anchor = newAnchor;
    
    refCodeRef(newCodeRef);
    
    return passed;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movl %ecx, %ebp
movq %rdx, %r14
movq %rsi, %rbx
movq %rdi, %r15
movl $0x1, %r12d
movl $0x1, %esi
xorl %edx, %edx
callq 0x8bb3
testl %eax, %eax
jne 0xfb78
movl (%r15), %esi
movq %r15, %rdi
callq 0x91d8
movq %rax, %r15
movl %ebp, (%rax)
leaq 0x15b70(%rip), %rdi     # 0x256c8
movl %ebp, %esi
callq 0x91d8
movq %rax, 0x8(%r15)
movq %r14, 0x10(%r15)
movq %rbx, 0x18(%r15)
incl (%rax)
movq %rbx, %rdi
callq 0xf809
xorl %r12d, %r12d
movl %r12d, %eax
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: adjustOffsetAndIW
void adjustOffsetAndIW(ccBool sameWindow, ccInt *offset, ccInt *indexWidth, ccInt insertionOffset, ccInt newIndices)
{
    if ((sameWindow) && (insertionOffset >= *offset))  { 
        *indexWidth += newIndices;
        if (*indexWidth < insertionOffset - (*offset))  {       // can happen if newIndices < 0 
            *indexWidth = insertionOffset - (*offset);
    }   }
    
    else if (insertionOffset <= *offset) {
        *offset += newIndices;
        if (insertionOffset > *offset)  {                       // possible only if newIndices < 0
            *indexWidth -= insertionOffset - (*offset);
            if (*indexWidth < 0)  *indexWidth = 0;
            *offset = insertionOffset;
    }   }
}

// Assembly:
testb %dil, %dil
sete %dil
movl (%rsi), %eax
cmpl %ecx, %eax
setg %r9b
orb %dil, %r9b
je 0xfd16
cmpl %ecx, %eax
jl 0xfd15
addl %r8d, %eax
movl %eax, (%rsi)
subl %ecx, %eax
jge 0xfd15
addl (%rdx), %eax
xorl %edi, %edi
testl %eax, %eax
cmovgl %eax, %edi
movl %edi, (%rdx)
movl %ecx, (%rsi)
retq
addl (%rdx), %r8d
movl %r8d, (%rdx)
subl (%rsi), %ecx
cmpl %ecx, %r8d
cmovgl %r8d, %ecx
movl %ecx, (%rdx)
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/intrpt.c
// Function: unflagWindow
void unflagWindow(window *theWindow, unsigned char theFlag)
{
    variable *theVariable = theWindow->variable_ptr;
    ccInt counter;
    
    if (!isBusy(theWindow, theFlag))  return;
    clearBusy(theWindow, theFlag);
    
    if (theVariable->type >= composite_type)  {
    for (counter = 1; counter <= theVariable->mem.members.elementNum; counter++)  {
        
        member *loopMember = LL_member(theVariable, counter);
        if (loopMember->memberWindow != NULL)  {
        if ((loopMember->memberWindow->jamStatus == can_jam) && (isBusy(loopMember, busy_overlap_flag)))  {
            clearBusy(loopMember, busy_overlap_flag);
            unflagWindow(loopMember->memberWindow, theFlag);
    }}  }}
    
    return;
}

// Assembly:
movl 0x24(%rdi), %eax
testl %esi, %eax
je 0xfd91
pushq %rbp
pushq %r14
pushq %rbx
movq 0x10(%rdi), %rbx
movl %esi, %ecx
notl %ecx
andl %ecx, %eax
movl %eax, 0x24(%rdi)
cmpl $0x5, 0xc0(%rbx)
jl 0xfd8d
cmpl $0x0, 0x10(%rbx)
jle 0xfd8d
addq $0x10, %rbx
xorl %ebp, %ebp
movzbl %sil, %r14d
incl %ebp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x91d8
movq (%rax), %rdi
testq %rdi, %rdi
je 0xfd89
cmpb $0x1, 0x20(%rdi)
jne 0xfd89
movl 0x44(%rax), %ecx
testb $0x20, %cl
je 0xfd89
andl $-0x21, %ecx
movl %ecx, 0x44(%rax)
movl %r14d, %esi
callq 0xfd28
cmpl (%rbx), %ebp
jl 0xfd59
popq %rbx
popq %r14
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: jump_if_true
void _jump_if_true()
{
    ccInt *jumpPC = pcCodePtr + *pcCodePtr;
    
    pcCodePtr++;
    callLogicalFunction();
    if (boolRegister)  pcCodePtr = jumpPC;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq 0x15a63(%rip), %rbx     # 0x25818
movslq (%rbx), %r14
leaq 0x4(%rbx), %rax
movq %rax, 0x15a55(%rip)     # 0x25818
callq 0xfde4
cmpb $0x0, 0x159f9(%rip)     # 0x257c8
je 0xfddc
leaq (%rbx,%r14,4), %rax
movq %rax, 0x15a3c(%rip)     # 0x25818
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: callLogicalFunction
void callLogicalFunction()  {
    
    callFunction(bytecodeJumpTable);
    if (errCode != passed)  return;
    
    if (GL_Object.type == var_type)  {
        if (searchView.windowPtr == NULL)  {  setError(void_member_err, pcCodePtr-1);  return;  }
        if (searchView.width != 1)  {  setError(multiple_indices_not_allowed_err, pcCodePtr-1);  return;  }
        if (searchView.windowPtr->variable_ptr->type != bool_type)  {  setError(type_mismatch_err, pcCodePtr-1);  return;  }
        loadBoolRegister(searchView.windowPtr->variable_ptr, searchView.offset);
        GL_Object.type = bool_type;      }
    
    else if (GL_Object.type != bool_type)  {  setError(type_mismatch_err, pcCodePtr-1);  return;  }
}

// Assembly:
pushq %rax
movq 0x15a2c(%rip), %rax     # 0x25818
movslq (%rax), %rcx
addq $0x4, %rax
movq %rax, 0x15a1e(%rip)     # 0x25818
leaq 0x1475f(%rip), %rax     # 0x24560
callq *(%rax,%rcx,8)
cmpl $0x0, 0x1596d(%rip)     # 0x25778
je 0xfe0f
popq %rax
retq
movl 0x15a23(%rip), %eax     # 0x25838
testl %eax, %eax
je 0xfe0d
cmpl $-0x1, %eax
jne 0xfe40
movq 0x15a93(%rip), %rax     # 0x258b8
testq %rax, %rax
je 0xfe52
cmpl $0x1, 0x15a93(%rip)     # 0x258c4
jne 0xfe64
movq 0x10(%rax), %rdi
cmpl $0x0, 0xc0(%rdi)
je 0xfe7a
movq 0x159d1(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl $0x11, %edi
jmp 0xfe74
movq 0x159bf(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl $0x1a, %edi
jmp 0xfe74
movq 0x159ad(%rip), %rsi     # 0x25818
addq $-0x4, %rsi
movl $0x1f, %edi
popq %rax
jmp 0xcfa3
movl 0x15a40(%rip), %esi     # 0x258c0
addq $0x10, %rdi
incl %esi
callq 0x91d8
movb (%rax), %al
movb %al, 0x15935(%rip)      # 0x257c8
movl $0x0, 0x1599b(%rip)     # 0x25838
jmp 0xfe0d
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: jump_if_false
void _jump_if_false()
{
    ccInt *jumpPC = pcCodePtr + *pcCodePtr;
    
    pcCodePtr++;
    callLogicalFunction();
    if (!boolRegister)  pcCodePtr = jumpPC;
}

// Assembly:
pushq %r14
pushq %rbx
pushq %rax
movq 0x1596b(%rip), %rbx     # 0x25818
movslq (%rbx), %r14
leaq 0x4(%rbx), %rax
movq %rax, 0x1595d(%rip)     # 0x25818
callq 0xfde4
cmpb $0x0, 0x15901(%rip)     # 0x257c8
jne 0xfed4
leaq (%rbx,%r14,4), %rax
movq %rax, 0x15944(%rip)     # 0x25818
addq $0x8, %rsp
popq %rbx
popq %r14
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: func_return
void _func_return()
{
    callCodeFunction();         // this allows a step to a void return variable; callBytecodeFunction() wouldn't 
    if (errCode != passed)  return;
    
    returnView = searchView;
    if (GL_Object.type != var_type)  returnView.windowPtr = NULL;
      
    errCode = return_flag;      // not a real error -- just to get runBytecode/Constructor to stop
}

// Assembly:
pushq %rax
callq 0xff3d
cmpl $0x0, 0x15879(%rip)     # 0x25778
jne 0xff3b
movq 0x159c0(%rip), %rax     # 0x258c8
movq %rax, 0x15a09(%rip)     # 0x25918
movups 0x159a2(%rip), %xmm0    # 0x258b8
movups %xmm0, 0x159eb(%rip)    # 0x25908
cmpl $-0x1, 0x15914(%rip)    # 0x25838
je 0xff31
movq $0x0, 0x159d7(%rip) # 0x25908
movl $0x32, 0x1583d(%rip)    # 0x25778
popq %rax
retq
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: callCodeFunction
void callCodeFunction()
{
    ccInt *commandPtr = pcCodePtr;
    
    callFunction(codeJumpTable);
    
    if ((*commandPtr != type_array) && (*commandPtr != define_equate))  {
        resizeLinkedList(&(GL_Object.arrayDimList), 0, ccFalse);        }
}

// Assembly:
pushq %rbx
movq 0x158d3(%rip), %rbx     # 0x25818
movslq (%rbx), %rax
leaq 0x4(%rbx), %rcx
movq %rcx, 0x158c5(%rip)     # 0x25818
leaq 0x14b76(%rip), %rcx     # 0x24ad0
callq *(%rcx,%rax,8)
movl (%rbx), %eax
cmpl $0x8, %eax
je 0xff69
cmpl $0x2e, %eax
jne 0xff6b
popq %rbx
retq
leaq 0x158ce(%rip), %rdi     # 0x25840
xorl %esi, %esi
xorl %edx, %edx
popq %rbx
jmp 0x8bc7
// File: /workspace/github_c_makefile_star2_O3/heltilda[P]cicada/bytecd.c
// Function: built_in_function
void _built_in_function()
{
    view holdBIFArgsView;
    void(*theBuiltInFunction)(void);
    ccInt biFunctionID;
    
    
        // read in the function ID
    
    callNumericFunction(int_type);
    if (errCode != passed)  return;
    
    if ((intRegister < 0) || (intRegister >= bi_commands_num))  {
        setError(nonexistent_built_in_function_err, pcCodePtr);
        return;         }
    
    biFunctionID = intRegister;
    theBuiltInFunction = BuiltInFunctionJumpTable[biFunctionID];
    
    
        // get the argument variable
    
    callBytecodeFunction();
    if (errCode != passed)  return;
    
    holdBIFArgsView = BIF_argsView;
    BIF_argsView = searchView;
    
    
        // run the function and set the return variable
    
    returnView.windowPtr = NULL;
    theBuiltInFunction();
    
    GL_Object.type = BIF_Types[biFunctionID];
    GL_Path.stemMember = NULL;
    
    
        // restore the old args variable
    
    BIF_argsView = holdBIFArgsView;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0x20, %rsp
movl $0x2, %edi
callq 0x10814
cmpl $0x0, 0x1504f(%rip)     # 0x25778
je 0x10735
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
retq
movslq 0x15090(%rip), %rbx     # 0x257cc
testq %rbx, %rbx
js 0x107fa
leaq 0x14944(%rip), %rax     # 0x25090
cmpl (%rax), %ebx
jge 0x107fa
leaq 0x14845(%rip), %rax     # 0x24fa0
movq (%rax,%rbx,8), %r14
movq 0x150b2(%rip), %rax     # 0x25818
movslq (%rax), %rcx
addq $0x4, %rax
movq %rax, 0x150a4(%rip)     # 0x25818
leaq 0x13de5(%rip), %rax     # 0x24560
callq *(%rax,%rcx,8)
cmpl $0x0, 0x14ff3(%rip)     # 0x25778
jne 0x1072b
movq 0x1515a(%rip), %rax     # 0x258e8
movq %rax, 0x10(%rsp)
movups 0x1513e(%rip), %xmm0    # 0x258d8
movaps %xmm0, (%rsp)
movups 0x15113(%rip), %xmm0    # 0x258b8
movups %xmm0, 0x1512c(%rip)    # 0x258d8
movq 0x15115(%rip), %rax     # 0x258c8
movq %rax, 0x1512e(%rip)     # 0x258e8
xorl %r15d, %r15d
movq %r15, 0x15144(%rip)     # 0x25908
callq *%r14
leaq 0x146d2(%rip), %rax     # 0x24ea0
movl (%rax,%rbx,4), %eax
movl %eax, 0x15061(%rip)     # 0x25838
movq %r15, 0x1508a(%rip)     # 0x25868
movaps (%rsp), %xmm0
movups %xmm0, 0x150ef(%rip)    # 0x258d8
movq 0x10(%rsp), %rax
movq %rax, 0x150f3(%rip)     # 0x258e8
jmp 0x1072b
movq 0x15017(%rip), %rsi     # 0x25818
movl $0x2b, %edi
addq $0x20, %rsp
popq %rbx
popq %r14
popq %r15
jmp 0xcfa3