// File: besm6[P]pascal-re/pascompl.cc
// Function: ParseData::ParseData()
ParseData() {
        dsize = FcstCnt;
        inSymbol();
        setcount = 0;
/*(loop)*/
        do { /* 16530 */
            inSymbol();
            setup(boundary);
            if (SY != IDENT) {
                if (SY == ENDSY)
                    break;
                error(errNoIdent);
                curExpr = uVarPtr;
            } else /* 16543 */ {
                if (hashTravPtr == NULL) {
L16545:             error(errNotDefined);
                    curExpr = uVarPtr;
                    inSymbol();
                } else {
                    if (hashTravPtr->cl == VARID) {
                        parseLval();
                    } else goto L16545;
                }
            } /* 16557 */
            putLeft = true;
            objBufIdx = 1;
            (void) formOperator(ADDRTOR9);
            if (objBufIdx != 1)
                error(errVarTooComplex);
            l4var7z.ii = leftInsn & 0777700000000L;
            l4var3z.i = FcstCnt;
            l4var4z.i = 0;
            l4var9z.i = 0;
            do { /* 16574 */
                expression();
                (void) formOperator(LITINSN);
                l4var8z = curVal;
                if (SY == COLON) {
                    inSymbol();
                    l4var5z = curToken;
                    if (SY != INTCONST) {
                        error(62); /* errIntegerNeeded */
                        l4var5z.i = 0;
                    } else
                        inSymbol();
                } else
                    l4var5z.i = 1;
                if (l4var5z.i != 1) {
                    if (l4var4z.i != 0)
                        P16432(1);
                    l4var4z.i = 1;
                    P16432(l4var5z.i);
                } else {
                    l4var4z.i = l4var4z.i + 1;
                    if (SY == COMMA) {
                        curVal = l4var8z;
                        toFCST();
                    } else {
                        if (l4var4z.i != 1) {
                            curVal = l4var8z;
                            toFCST();
                        }
                        P16432(1);
                    }
                } /* 16641 */
            } while (SY == COMMA);
            rollup(boundary);
        } while (SY == SEMICOLON); /* 16645 */
        if (SY != ENDSY)
            error(errBadSymbol);
        for (size_t s = 0; s < F.size(); ++s) FCST.push_back(F[s].b);
        int92z = FcstCnt - dsize;
        FcstCnt = dsize;
        int93z = setcount;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x840, %rsp            # imm = 0x840
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x828(%rbp)
addq $0x48, %rdi
movq %rdi, -0x830(%rbp)
callq 0x27640
movq -0x828(%rbp), %rax
movq 0x5d388(%rip), %rcx     # 0x7fef0
movq %rcx, (%rax)
leaq -0x178(%rbp), %rdi
callq 0x9790
jmp 0x22b79
movq -0x828(%rbp), %rax
movq $0x0, 0x8(%rax)
leaq -0x2f8(%rbp), %rdi
callq 0x9790
jmp 0x22b96
movq -0x828(%rbp), %rdi
addq $0x28, %rdi
callq 0x22b00
jmp 0x22ba8
cmpl $0x0, 0x5d32d(%rip)     # 0x7fedc
je 0x22bfe
cmpl $0x27, 0x5d324(%rip)    # 0x7fedc
jne 0x22be2
jmp 0x22edb
movq -0x830(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x180(%rbp)
movl %eax, -0x184(%rbp)
callq 0x278a0
jmp 0x22f9e
movl $0x3, %edi
callq 0x7b40
jmp 0x22bee
movq 0x5d563(%rip), %rax     # 0x80158
movq %rax, 0x5d564(%rip)     # 0x80160
jmp 0x22c50
cmpq $0x0, 0x5d45a(%rip)     # 0x80060
jne 0x22c34
jmp 0x22c0a
movl $0xb, %edi
callq 0x7b40
jmp 0x22c16
movq 0x5d53b(%rip), %rax     # 0x80158
movq %rax, 0x5d53c(%rip)     # 0x80160
leaq -0x468(%rbp), %rdi
callq 0x9790
jmp 0x22c32
jmp 0x22c4e
movq 0x5d425(%rip), %rax     # 0x80060
cmpl $0x3, 0x20(%rax)
jne 0x22c4a
callq 0x14ae0
jmp 0x22c48
jmp 0x22c4c
jmp 0x22c0a
jmp 0x22c4e
jmp 0x22c50
movb $0x1, 0x5d3dd(%rip)     # 0x80034
movq $0x1, 0x5d396(%rip) # 0x7fff8
leaq -0x4d0(%rbp), %rdi
movl $0x5, %esi
callq 0x112d0
jmp 0x22c75
leaq -0x4d0(%rbp), %rdi
callq 0x21850
cmpq $0x1, 0x5d36f(%rip)     # 0x7fff8
je 0x22c99
movl $0x30, %edi
callq 0x7b40
jmp 0x22c97
jmp 0x22c99
movq -0x828(%rbp), %rdi
movabsq $0xfff000000, %rax      # imm = 0xFFF000000
andq 0x5d447(%rip), %rax     # 0x800f8
movq %rax, 0x30(%rdi)
movq 0x5d234(%rip), %rsi     # 0x7fef0
addq $0x10, %rdi
callq 0x4ad0
movq -0x828(%rbp), %rdi
addq $0x18, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4ad0
movq -0x828(%rbp), %rdi
addq $0x40, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4ad0
callq 0x14e90
jmp 0x22cf4
leaq -0x538(%rbp), %rdi
movl $0x11, %esi
callq 0x112d0
jmp 0x22d07
leaq -0x538(%rbp), %rdi
callq 0x21850
movq -0x828(%rbp), %rax
movq 0x5d3cf(%rip), %rcx     # 0x800f0
movq %rcx, 0x38(%rax)
cmpl $0x12, 0x5d1b0(%rip)    # 0x7fedc
jne 0x22d8b
leaq -0x6a8(%rbp), %rdi
callq 0x9790
jmp 0x22d3c
movq -0x828(%rbp), %rax
movq 0x5d39e(%rip), %rcx     # 0x800e8
movq %rcx, 0x20(%rax)
cmpl $0x1, 0x5d187(%rip)     # 0x7fedc
je 0x22d79
movl $0x3e, %edi
callq 0x7b40
jmp 0x22d63
movq -0x828(%rbp), %rdi
addq $0x20, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4ad0
jmp 0x22d89
leaq -0x818(%rbp), %rdi
callq 0x9790
jmp 0x22d87
jmp 0x22d89
jmp 0x22da0
movq -0x828(%rbp), %rdi
addq $0x20, %rdi
movl $0x1, %esi
callq 0x4ad0
movq -0x828(%rbp), %rdi
addq $0x20, %rdi
callq 0x1dfb0
cmpq $0x1, %rax
je 0x22e1c
movq -0x828(%rbp), %rdi
addq $0x18, %rdi
callq 0x1dfb0
cmpq $0x0, %rax
je 0x22de1
movq -0x828(%rbp), %rdi
movl $0x1, %esi
callq 0x27660
jmp 0x22ddf
jmp 0x22de1
movq -0x828(%rbp), %rdi
addq $0x18, %rdi
movl $0x1, %esi
callq 0x4ad0
movq -0x828(%rbp), %rdi
addq $0x20, %rdi
callq 0x1dfb0
movq -0x828(%rbp), %rdi
movq %rax, %rsi
callq 0x27660
jmp 0x22e17
jmp 0x22eaf
movq -0x828(%rbp), %rdi
addq $0x18, %rdi
callq 0x1dfb0
movq -0x828(%rbp), %rdi
movq %rax, %rsi
addq $0x1, %rsi
addq $0x18, %rdi
callq 0x4ad0
cmpl $0xe, 0x5d092(%rip)     # 0x7fedc
jne 0x22e67
movq -0x828(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, 0x5d292(%rip)     # 0x800f0
callq 0x8140
jmp 0x22e65
jmp 0x22ead
movq -0x828(%rbp), %rdi
addq $0x18, %rdi
callq 0x1dfb0
cmpq $0x1, %rax
je 0x22e98
movq -0x828(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, 0x5d261(%rip)     # 0x800f0
callq 0x8140
jmp 0x22e96
jmp 0x22e98
movq -0x828(%rbp), %rdi
movl $0x1, %esi
callq 0x27660
jmp 0x22eab
jmp 0x22ead
jmp 0x22eaf
jmp 0x22eb1
cmpl $0xe, 0x5d024(%rip)     # 0x7fedc
je 0x22ced
movq -0x828(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x4d30
cmpl $0xf, 0x5d007(%rip)     # 0x7fedc
je 0x22b88
cmpl $0x27, 0x5cffa(%rip)    # 0x7fedc
je 0x22ef2
movl $0xc, %edi
callq 0x7b40
jmp 0x22ef0
jmp 0x22ef2
movq $0x0, -0x820(%rbp)
movq -0x828(%rbp), %rdi
movq -0x820(%rbp), %rax
movq %rax, -0x838(%rbp)
addq $0x48, %rdi
callq 0x27860
movq %rax, %rcx
movq -0x838(%rbp), %rax
cmpq %rcx, %rax
jae 0x22f68
movq -0x828(%rbp), %rdi
addq $0x48, %rdi
movq -0x820(%rbp), %rsi
callq 0x27880
movq %rax, %rsi
leaq 0xb5aa5(%rip), %rdi     # 0xd89f0
callq 0x1e3b0
jmp 0x22f52
jmp 0x22f54
movq -0x820(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x820(%rbp)
jmp 0x22efd
movq -0x828(%rbp), %rax
movq 0x5cf7a(%rip), %rcx     # 0x7fef0
subq (%rax), %rcx
movq %rcx, 0x5d080(%rip)     # 0x80000
movq (%rax), %rcx
movq %rcx, 0x5cf66(%rip)     # 0x7fef0
movq 0x8(%rax), %rax
movq %rax, 0x5d073(%rip)     # 0x80008
addq $0x840, %rsp            # imm = 0x840
popq %rbp
retq
movq -0x180(%rbp), %rdi
callq 0x44c0
nopw (%rax,%rax)