// File: /workspace/github_cpp_makefile_star2_O2/besm6[P]pascal-re/pascompl.cc
// Function: structBranch(bool)
bool structBranch(bool isGoto)
{
    StrLabel * curLab;
    int ii;
    bool ret = true;
    StrLabel * &strLabList = programme::super.back()->strLabList;

    if (SY == IDENT or not isGoto) {
        curLab = strLabList;
        ii = 1;
        while (curLab != NULL) {
            if (curLab->ident == 0) {
                ii = ii - 1;
            } else {
                if (curLab->ident == curIdent) {
                    if (ii == 1) {
                        if (isGoto) {
                            form1Insn(InsnTemp[UJ] + curLab->offset);
                        } else {
                            formJump(curLab->exitTarget);
                        }
                    } else {
                        form1Insn(getValueOrAllocSymtab(ii) +
                                  (KVTM+I13));
                        if (isGoto) {
                            form1Insn(KVTM+I10 + curLab->offset);
                        } else {
                            jumpType = KVTM+I10;
                            formJump(curLab->exitTarget);
                            jumpType = InsnTemp[UJ];
                        };
                        form1Insn(getHelperProc(60) +
                                  06437777713700000); /* P/ZAM */
                    };
                    return ret;
                }
            }
            curLab = curLab->next;
        }
        if (not isGoto and SY != IDENT) {
            if (ii != 1) {
                form1Insn(getValueOrAllocSymtab(ii) + (KVTM+I13));
                form1Insn(getHelperProc(60)); /* P/ZAM */
            }
            formJump(int53z);
        } else {
            error(errNotDefined);
        }
    } else
        return false;
    return ret;
}

// Assembly:
pushq %rbp
pushq %r14
pushq %rbx
movl %edi, %ebp
movl 0x55a92(%rip), %ecx     # 0x6381c
testl %ecx, %ecx
sete %al
movl %ebp, %ebx
xorb $0x1, %bl
orb %al, %bl
cmpb $0x1, %bl
jne 0xdead
movq 0xae5d2(%rip), %rax     # 0xbc378
movq -0x8(%rax), %r14
addq $0x78, %r14
pushq $0x1
popq %rax
movq 0x55c88(%rip), %rdx     # 0x63a40
movq (%r14), %r14
testq %r14, %r14
je 0xddd4
movq 0x8(%r14), %rsi
testq %rsi, %rsi
je 0xddd0
cmpq %rdx, %rsi
jne 0xddb8
jmp 0xddeb
decl %eax
jmp 0xddb8
testl %ecx, %ecx
sete %cl
orb %bpl, %cl
je 0xde05
pushq $0xb
popq %rdi
callq 0x4f2c
jmp 0xdead
cmpl $0x1, %eax
jne 0xde37
testb %bpl, %bpl
je 0xde60
movq 0x10(%r14), %rdi
addq 0x5a6d8(%rip), %rdi     # 0x684d8
jmp 0xdea8
cmpl $0x1, %eax
je 0xde2e
movslq %eax, %rdi
callq 0x569a
leaq 0xda0000(%rax), %rdi
callq 0x4fcb
pushq $0x3c
popq %rdi
callq 0x52d1
movq %rax, %rdi
callq 0x4fcb
leaq 0x559db(%rip), %rdi     # 0x63810
jmp 0xde67
movslq %eax, %rdi
callq 0x569a
leaq 0xda0000(%rax), %rdi
callq 0x4fcb
testb %bpl, %bpl
je 0xde6e
movl $0xaa0000, %edi         # imm = 0xAA0000
addq 0x10(%r14), %rdi
callq 0x4fcb
jmp 0xde93
addq $0x18, %r14
movq %r14, %rdi
callq 0x5148
jmp 0xdead
movq $0xaa0000, 0x55987(%rip) # imm = 0xAA0000
addq $0x18, %r14
movq %r14, %rdi
callq 0x5148
movq 0x5a64c(%rip), %rax     # 0x684d8
movq %rax, 0x5596d(%rip)     # 0x63800
pushq $0x3c
popq %rdi
callq 0x52d1
movabsq $0xd1ffff2f8000, %rdi   # imm = 0xD1FFFF2F8000
addq %rax, %rdi
callq 0x4fcb
movl %ebx, %eax
popq %rbx
popq %r14
popq %rbp
retq