// File: /workspace/github_c_makefile_star2_O0/heltilda[P]cicada/bytecd.c
// Function: relinkGLStemMember
ccInt relinkGLStemMember(view *targetView, ccBool doRelink, ccBool newTarget, ccBool isUnjammable)
{
    window *newMemberWindow = NULL;
    ccInt rtrn;
    
    
        // first make sure the aliasing is legal
    
    if (GL_Path.stemMember == NULL)  return undefined_member_err;
    else if (GL_Path.indices != GL_Path.stemMember->indices)  return incomplete_member_err;
    else if (searchView.width != searchView.windowPtr->variable_ptr->instances)  return incomplete_variable_err;
    else if ((doRelink) && (!newTarget))  {
        if ((targetView->width != searchView.width*GL_Path.indices))  return mismatched_indices_err;
        else if (targetView->windowPtr == NULL)  return illegal_target_err;
        else if (*(targetView->windowPtr->variable_ptr->references) == 0)  return target_deleted_err;       }
    
    
        // re-alias the member
    
    if (doRelink)  {   // if we're not voiding it, then relink it
        rtrn = addWindow(targetView->windowPtr->variable_ptr, targetView->offset, targetView->width, &newMemberWindow, !isUnjammable);
        if (rtrn != passed)  return rtrn;
        refWindow(newMemberWindow);        }
    
    derefWindow(&(GL_Path.stemMember->memberWindow));
    
    if (doRelink)  GL_Path.stemMember->memberWindow = newMemberWindow;
    
    return passed;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %cl, %al
movb %dl, %cl
movb %sil, %dl
movq %rdi, -0x10(%rbp)
movb %dl, -0x11(%rbp)
movb %cl, -0x12(%rbp)
movb %al, -0x13(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, 0x15cfc(%rip)     # 0x2c858
jne 0x16b6a
movl $0x19, -0x4(%rbp)
jmp 0x16c97
movl 0x15cf8(%rip), %eax     # 0x2c868
movq 0x15ce1(%rip), %rcx     # 0x2c858
cmpl 0xc(%rcx), %eax
je 0x16b88
movl $0x1c, -0x4(%rbp)
jmp 0x16c97
movl 0x15d26(%rip), %eax     # 0x2c8b4
movq 0x15d13(%rip), %rcx     # 0x2c8a8
movq 0x10(%rcx), %rcx
cmpl 0xf0(%rcx), %eax
je 0x16bad
movl $0x1d, -0x4(%rbp)
jmp 0x16c97
cmpb $0x0, -0x11(%rbp)
je 0x16c19
cmpb $0x0, -0x12(%rbp)
jne 0x16c19
movq -0x10(%rbp), %rax
movl 0xc(%rax), %eax
movl 0x15cee(%rip), %ecx     # 0x2c8b4
imull 0x15c9b(%rip), %ecx     # 0x2c868
cmpl %ecx, %eax
je 0x16bdd
movl $0x4, -0x4(%rbp)
jmp 0x16c97
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x16bf3
movl $0x26, -0x4(%rbp)
jmp 0x16c97
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
cmpl $0x0, (%rax)
jne 0x16c13
movl $0x27, -0x4(%rbp)
jmp 0x16c97
jmp 0x16c15
jmp 0x16c17
jmp 0x16c19
jmp 0x16c1b
jmp 0x16c1d
jmp 0x16c1f
cmpb $0x0, -0x11(%rbp)
je 0x16c70
movq -0x10(%rbp), %rax
movq (%rax), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rax
movl 0x8(%rax), %esi
movq -0x10(%rbp), %rax
movl 0xc(%rax), %edx
cmpb $0x0, -0x13(%rbp)
setne %al
xorb $-0x1, %al
andb $0x1, %al
leaq -0x20(%rbp), %rcx
movsbl %al, %r8d
callq 0xf600
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x16c67
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x16c97
movq -0x20(%rbp), %rdi
callq 0xf780
movq 0x15be1(%rip), %rdi     # 0x2c858
callq 0xf7d0
cmpb $0x0, -0x11(%rbp)
je 0x16c90
movq -0x20(%rbp), %rcx
movq 0x15bcb(%rip), %rax     # 0x2c858
movq %rcx, (%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq