// File: /workspace/github_cpp_makefile_star2_O3/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
movq $0x0, 0x40(%rdi)
movq $0x1, 0x50(%rdi)
leaq 0x20(%rdi), %r14
leaq 0x18(%rdi), %r15
leaq 0x60(%rdi), %rbp
leaq 0x8(%rsp), %r12
leaq 0xd8(%rsp), %r13
movq %rbx, %rdi
movl $0x1, %esi
callq 0x1a722
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
je 0x1a2a6
cmpq $0x0, 0x50(%rbx)
je 0x1a128
movq %rbx, %rdi
callq 0x1a982
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
cmpl $0x12, 0x4a787(%rip)    # 0x6481c
jne 0x1a0c9
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1aa8a
cmpl $0x12, 0x4a773(%rip)    # 0x6481c
jne 0x1a0c9
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1aa8a
cmpq $0x25, 0x70(%rbx)
je 0x1a10a
movl $0x23, %edi
callq 0x58ff
jmp 0x1a10a
movq 0x4a958(%rip), %rax     # 0x64a28
cmpq 0x4a9a1(%rip), %rax     # 0x64a78
jne 0x1a10a
movq $0x2a, 0x70(%rbx)
movq $0x11, 0x60(%rbx)
movq 0x10(%rbx), %rax
cmpq $0x1, (%rax)
je 0x1a0fd
movl $0x22, %edi
callq 0x58ff
leaq 0x1a8(%rsp), %rdi
callq 0x6f40
movb $0x0, 0x49(%rbx)
movq 0x18(%rbx), %rax
testq %rax, %rax
je 0x1a13d
movq %rax, 0x4a982(%rip)     # 0x64aa0
movq %r13, %rdi
movl $0x2, %esi
jmp 0x1a184
movq $0x1d, 0x70(%rbx)
movq %rbx, %rdi
callq 0x1a8c4
jmp 0x1a2a6
movq 0x70(%rbx), %rax
cmpq $0x2f, %rax
jg 0x1a167
movb $0x2f, %cl
subb %al, %cl
movzbl %cl, %ecx
movl $0x380, %edx            # imm = 0x380
btq %rcx, %rdx
jae 0x1a167
addq $0x5, %rax
movq %rax, 0x70(%rbx)
movb $0x1, 0x49(%rbx)
jmp 0x1a195
movq (%rbp), %rsi
leaq 0x4a8be(%rip), %rdi     # 0x64a30
callq 0x3c48
leaq 0x140(%rsp), %rdi
movl $0x9, %esi
callq 0xc308
addq $-0x8, 0xa322f(%rip)    # 0xbd3c0
movq 0x70(%rbx), %rax
cmpq $0x25, %rax
jne 0x1a1f3
movq (%r14), %rax
testq %rax, %rax
je 0x1a1c3
movq %rax, 0x4a8f6(%rip)     # 0x64aa0
leaq 0x70(%rsp), %rdi
movl $0xa, %esi
callq 0xc308
addq $-0x8, 0xa31ff(%rip)    # 0xbd3c0
jmp 0x1a1f3
movzwl 0x4a86c(%rip), %eax     # 0x64a36
shlq $0x30, %rax
movabsq $0xd00000000004, %rcx   # imm = 0xD00000000004
orq %rcx, %rax
movq %rax, 0x4a84e(%rip)     # 0x64a30
callq 0x5ff3
leaq 0x803000(%rax), %rdi
callq 0x59a2
movq 0x30(%rbx), %rax
movq %rax, 0x4a8a2(%rip)     # 0x64aa0
movq 0x70(%rbx), %rax
cmpb $0x1, 0x49(%rbx)
jne 0x1a219
xorl %ecx, %ecx
cmpq $0x2d, %rax
sete %cl
leal (%rcx,%rcx,8), %esi
addl $0x2, %esi
jmp 0x1a232
xorl %ecx, %ecx
cmpq $0x51, %rax
sete %cl
cmpq $0x28, %rax
leal 0xa(%rcx,%rcx), %esi
movl $0xc, %eax
cmovel %eax, %esi
movl %esi, 0x78(%rbx)
movq %r12, %rdi
callq 0xc308
addq $-0x8, 0xa317b(%rip)    # 0xbd3c0
movq 0x70(%rbx), %rcx
cmpq $0x2f, %rcx
jg 0x1a288
movb $0x2f, %al
subb %cl, %al
movzbl %al, %eax
movl $0xaa0000, %edi         # imm = 0xAA0000
movl $0x18c, %edx            # imm = 0x18C
btq %rax, %rdx
movq %rbp, %rax
jb 0x1a296
cmpq $0x29, %rcx
jne 0x1a29e
movq 0x10(%rbx), %rax
cmpl $0x1, 0x10(%rax)
jne 0x1a318
addq $0x28, %rax
movl $0xba0000, %edi         # imm = 0xBA0000
jmp 0x1a296
movl $0xaa0000, %edi         # imm = 0xAA0000
movq %rbp, %rax
cmpq $0x51, %rcx
jne 0x1a29e
addq (%rax), %rdi
callq 0x59a2
movq %rbx, %rdi
callq 0x1aaf0
cmpl $0xe, 0x4a56f(%rip)     # 0x6481c
je 0x1a059
cmpq $0xb, 0x68(%rbx)
jne 0x1a2ca
movq $0x2e, 0x70(%rbx)
movq %rbx, %rdi
callq 0x1aaf0
movabsq $0xfff7ffffffff, %rax   # imm = 0xFFF7FFFFFFFF
andq 0x4a775(%rip), %rax     # 0x64a50
btsq $0x23, %rax
movq %rax, 0x4a769(%rip)     # 0x64a50
movq 0x58(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq 0x4a58e(%rip), %rax     # 0x64888
jne 0x1a306
movl $0x24, %edi
callq 0x58ff
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x35e6(%rip), %rdi      # 0x1d905
leaq 0x334e(%rip), %rsi      # 0x1d674
leaq 0x370d(%rip), %rcx      # 0x1da3a
movl $0x1f7, %edx            # imm = 0x1F7
callq 0x3170
nop