// File: /workspace/github_cpp_makefile_star2_O2/besm6[P]pascal-re/pascompl.cc
// Function: standProc::writeProc()
void writeProc() {
        l4exp9z = NULL;
        l4var13z.ii = true;
        do {
            startReadOrWrite(true);
            if (l4exp7z != l4exp9z) {
                if (not l4var13z.ii) {
                  helperNo = 29;         /* P/PF */
                  P17037();
                } else {
                    checkElementForReadWrite();
                    l4var5z = NULL;
                    l4var4z = NULL;
                    if (SY == COLON)
                        parseWidthSpecifier(l4var4z);
                    if (SY == COLON) {
                        parseWidthSpecifier(l4var5z);
                    if (helperNo != 37)    /* P/WR */
                        error(35); /* errSecondSpecifierForWriteOnlyForReal */
                    } else {
                        if (curToken.ii == litOct) {
                            helperNo = 42; /* P/WO */
                            l4var15z = 17;
                            if (l4typ3z->size != 1)
                                error(34); /* errTypeIsNotAFileElementType */
                            inSymbol();
                        }
                    }
                    l4bool11z = false;
                    if (l4var4z == NULL and
                        BitRange(38,40).has(helperNo)) {  /* WC,A6,A7 */
                        helperNo = helperNo + 5;       /* CW,6A,7A */
                        l4bool11z = true;
                    } else {
                        if (l4var4z == NULL) {
                            curVal.i = l4var15z;
                            (void) formOperator(MKINT);
                        } else {
                            curExpr = l4var4z;
                            (void) formOperator(LOAD);
                        }
                    }
                    if (helperNo == 37) {       /* P/WR */
                        if (l4var5z == NULL) {
                            curVal.i = 4;
                            form1Insn(KXTS+I8 + getFCSToffset());
                        } else {
                            curExpr = l4var5z;
                            (void) formOperator(MKPUSH);
                        }
                    }
                    curExpr = l4exp7z;
                    if (l4bool11z) {
                        if (helperNo == 45)     /* P/7A */
                            l4var18z = gen11;
                        else
                            l4var18z = LOAD;
                    } else {
                        if (helperNo == 40 or       /* P/A7 */
                            helperNo == 81)     /* P/WA */
                            l4var18z = gen12;
                        else
                            l4var18z = MKPUSH;
                    }
                    (void) formOperator(l4var18z);
                    if (Bits(39,40,44,45).has(helperNo) or /* A6,A7,6A,7A */
                        helperNo == 81)
                        form1Insn(KVTM+I10 + l4var15z);
                    else {
                        if (helperNo == 41) /* P/WX */
                            form1Insn(KVTM+I11 + l4typ3z->cast<ScalarT>().start);
                    }
                    callHelperWithArg();
                }
            }
        } while (SY == COMMA);
        if (procNo == 11) {
            helperNo = 46;                 /* P/WL */
            callHelperWithArg();
        }
        regsUsed = regsUsed + Bits(12);
        if (l4var14z.i == moduleOffset)
            error(36); /*errTooFewArguments */
    }

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x318, %rsp            # imm = 0x318
movq %rdi, %rbx
andq $0x0, 0x40(%rdi)
movq $0x1, 0x50(%rdi)
leaq 0x20(%rdi), %r14
leaq 0x18(%rdi), %r15
leaq 0x60(%rdi), %r13
pushq $0x1
popq %rbp
movq %rbx, %rdi
movl %ebp, %esi
callq 0x1727a
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
je 0x16e4e
cmpq $0x0, 0x50(%rbx)
je 0x16ccc
movq %rbx, %rdi
callq 0x174a6
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
cmpl $0x12, 0x4cbe1(%rip)    # 0x6381c
jne 0x16c6d
movq %rbx, %rdi
movq %r15, %rsi
callq 0x175be
cmpl $0x12, 0x4cbcd(%rip)    # 0x6381c
jne 0x16c6d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x175be
cmpq $0x25, 0x70(%rbx)
je 0x16cac
pushq $0x23
popq %rdi
callq 0x4f2c
jmp 0x16cac
movq 0x4cdb4(%rip), %rax     # 0x63a28
cmpq 0x4cdfd(%rip), %rax     # 0x63a78
jne 0x16cac
movq $0x2a, 0x70(%rbx)
movq $0x11, 0x60(%rbx)
movq 0x10(%rbx), %rax
cmpq $0x1, (%rax)
je 0x16c9f
pushq $0x22
popq %rdi
callq 0x4f2c
leaq 0x1a8(%rsp), %rdi
callq 0x6316
movb $0x0, 0x49(%rbx)
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x16ce1
movq %rax, 0x4cde0(%rip)     # 0x63aa0
leaq 0xd8(%rsp), %rdi
pushq $0x2
jmp 0x16d32
movq $0x1d, 0x70(%rbx)
movq %rbx, %rdi
callq 0x173f2
jmp 0x16e4e
movq 0x70(%rbx), %r12
cmpq $0x2f, %r12
jg 0x16d18
pushq $0x26
popq %rdi
pushq $0x28
popq %rsi
callq 0x37ec
movb $0x2f, %cl
subb %r12b, %cl
pushq $0x1
popq %rdx
shlq %cl, %rdx
andq %rax, %rdx
shlq $0x10, %rdx
je 0x16d18
addq $0x5, %r12
movq %r12, 0x70(%rbx)
movb $0x1, 0x49(%rbx)
jmp 0x16d44
movq (%r13), %rsi
leaq 0x4cd0d(%rip), %rdi     # 0x63a30
callq 0x381c
leaq 0x140(%rsp), %rdi
pushq $0x9
popq %rsi
callq 0xaa9a
addq $-0x8, 0xa5680(%rip)    # 0xbc3c0
movq 0x70(%rbx), %r12
cmpq $0x25, %r12
jne 0x16da0
movq (%r14), %rax
testq %rax, %rax
je 0x16d70
movq %rax, 0x4cd47(%rip)     # 0x63aa0
leaq 0x70(%rsp), %rdi
pushq $0xa
popq %rsi
callq 0xaa9a
addq $-0x8, 0xa5652(%rip)    # 0xbc3c0
jmp 0x16da0
movzwl 0x4ccbf(%rip), %eax     # 0x63a36
shlq $0x30, %rax
movabsq $0xd00000000004, %rcx   # imm = 0xD00000000004
orq %rcx, %rax
movq %rax, 0x4cca1(%rip)     # 0x63a30
callq 0x554f
leaq 0x803000(%rax), %rdi
callq 0x4fcb
movq 0x30(%rbx), %rax
movq %rax, 0x4ccf5(%rip)     # 0x63aa0
movq 0x70(%rbx), %rax
cmpb $0x1, 0x49(%rbx)
jne 0x16dc6
xorl %ecx, %ecx
cmpq $0x2d, %rax
sete %cl
leal (%rcx,%rcx,8), %esi
addl $0x2, %esi
jmp 0x16ddd
xorl %ecx, %ecx
cmpq $0x51, %rax
sete %cl
cmpq $0x28, %rax
leal 0xa(%rcx,%rcx), %esi
pushq $0xc
popq %rax
cmovel %eax, %esi
movl %esi, 0x78(%rbx)
leaq 0x8(%rsp), %rdi
callq 0xaa9a
addq $-0x8, 0xa55ce(%rip)    # 0xbc3c0
movq 0x70(%rbx), %rcx
cmpq $0x2f, %rcx
jg 0x16e30
movb $0x2f, %al
subb %cl, %al
movzbl %al, %eax
movl $0xaa0000, %edi         # imm = 0xAA0000
movl $0x18c, %edx            # imm = 0x18C
btq %rax, %rdx
movq %r13, %rax
jb 0x16e3e
cmpq $0x29, %rcx
jne 0x16e46
movq 0x10(%rbx), %rdi
callq 0x12dc6
addq $0x28, %rax
movl $0xba0000, %edi         # imm = 0xBA0000
jmp 0x16e3e
movl $0xaa0000, %edi         # imm = 0xAA0000
movq %r13, %rax
cmpq $0x51, %rcx
jne 0x16e46
addq (%rax), %rdi
callq 0x4fcb
movq %rbx, %rdi
callq 0x17622
cmpl $0xe, 0x4c9c7(%rip)     # 0x6381c
je 0x16c02
cmpq $0xb, 0x68(%rbx)
jne 0x16e72
movq $0x2e, 0x70(%rbx)
movq %rbx, %rdi
callq 0x17622
movabsq $0xfff7ffffffff, %rax   # imm = 0xFFF7FFFFFFFF
andq 0x4cbcd(%rip), %rax     # 0x63a50
btsq $0x23, %rax
movq %rax, 0x4cbc1(%rip)     # 0x63a50
movq 0x58(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq 0x4c9e6(%rip), %rax     # 0x63888
jne 0x16eac
pushq $0x24
popq %rdi
callq 0x4f2c
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq