// File: /workspace/github_c_makefile_star2_O0/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:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x1337e
jmp 0x1353f
cmpb $0x0, -0x9(%rbp)
je 0x133b4
movq -0x8(%rbp), %rax
movl 0xf4(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
je 0x1339b
jmp 0x1353f
movq -0x8(%rbp), %rax
movl 0xf4(%rax), %ecx
orl $0x8, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xf4(%rax)
jmp 0x133e2
movq -0x8(%rbp), %rax
movl 0xf4(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x133cb
jmp 0x1353f
movq -0x8(%rbp), %rax
movl 0xf4(%rax), %ecx
andl $-0x9, %ecx
movq -0x8(%rbp), %rax
movl %ecx, 0xf4(%rax)
movq -0x8(%rbp), %rax
cmpl $0x5, 0xc0(%rax)
jl 0x13478
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x10(%rcx), %eax
jg 0x13476
movq -0x8(%rbp), %rdi
addq $0x10, %rdi
movl -0x10(%rbp), %esi
callq 0x9700
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movl 0x44(%rax), %eax
andl $0x8, %eax
cmpl $0x0, %eax
jne 0x13469
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
je 0x13469
movq -0x18(%rbp), %rax
movl 0x44(%rax), %ecx
orl $0x8, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x44(%rax)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rdi
movsbl -0x9(%rbp), %esi
callq 0x13360
movq -0x18(%rbp), %rax
movl 0x44(%rax), %ecx
andl $-0x9, %ecx
movq -0x18(%rbp), %rax
movl %ecx, 0x44(%rax)
jmp 0x1346b
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x133fa
jmp 0x13478
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0x78(%rcx), %eax
jg 0x134e7
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
addq $0x20, %rdi
movl -0x10(%rbp), %esi
callq 0x9700
cmpl $0x0, (%rax)
je 0x134da
movq -0x8(%rbp), %rdi
addq $0x78, %rdi
movl -0x10(%rbp), %esi
callq 0x9700
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x134d8
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rdi
movsbl -0x9(%rbp), %esi
callq 0x13360
jmp 0x134da
jmp 0x134dc
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1347f
movl $0x1, -0x10(%rbp)
movl -0x10(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xd0(%rcx), %eax
jg 0x1353d
movq -0x8(%rbp), %rdi
addq $0xd0, %rdi
movl -0x10(%rbp), %esi
callq 0x9700
movq 0x18(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x13530
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rdi
movsbl -0x9(%rbp), %esi
callq 0x13360
jmp 0x13532
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x134ee
jmp 0x1353f
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)