// File: /workspace/github_cpp_makefile_star2_O1/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 0x1a32e
movq 0x30(%rbx), %rax
cmpq 0x40(%rbx), %rax
je 0x19e2d
cmpq $0x0, 0x50(%rbx)
je 0x19c5f
movq %rbx, %rdi
callq 0x1a5a0
xorps %xmm0, %xmm0
movups %xmm0, (%r15)
cmpl $0x12, 0x4ac01(%rip)    # 0x6482c
jne 0x19c38
movq %rbx, %rdi
movq %r15, %rsi
callq 0x1a6ce
cmpl $0x12, 0x4abed(%rip)    # 0x6482c
jne 0x19c74
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1a6ce
cmpq $0x25, 0x70(%rbx)
je 0x19cb5
movl $0x23, %edi
callq 0x589e
jmp 0x19cb5
movq $0x1d, 0x70(%rbx)
movq %rbx, %rdi
callq 0x1a4d6
jmp 0x19e2d
movq 0x4adbd(%rip), %rax     # 0x64a38
cmpq 0x4ae06(%rip), %rax     # 0x64a88
jne 0x19cb5
movq $0x2a, 0x70(%rbx)
movq $0x11, 0x60(%rbx)
movq 0x10(%rbx), %rax
cmpq $0x1, (%rax)
je 0x19ca8
movl $0x22, %edi
callq 0x589e
leaq 0x1a8(%rsp), %rdi
callq 0x6e26
movb $0x0, 0x49(%rbx)
movq 0x18(%rbx), %rax
testq %rax, %rax
jne 0x19cf5
movq 0x70(%rbx), %rcx
cmpq $0x2f, %rcx
jg 0x19cec
movb $0x2f, %dl
subb %cl, %dl
movzbl %dl, %edx
movl $0x380, %esi            # imm = 0x380
btq %rdx, %rsi
jae 0x19cec
addq $0x5, %rcx
movq %rcx, 0x70(%rbx)
movb $0x1, 0x49(%rbx)
jmp 0x19d11
testq %rax, %rax
je 0x19e3c
movq %rax, 0x4adb4(%rip)     # 0x64ab0
movq %r13, %rdi
movl $0x2, %esi
callq 0xc044
addq $-0x8, 0xa36bf(%rip)    # 0xbd3d0
cmpq $0x25, 0x70(%rbx)
jne 0x19d70
movq (%r14), %rax
testq %rax, %rax
je 0x19d40
movq %rax, 0x4ad89(%rip)     # 0x64ab0
leaq 0x70(%rsp), %rdi
movl $0xa, %esi
callq 0xc044
addq $-0x8, 0xa3692(%rip)    # 0xbd3d0
jmp 0x19d70
movzwl 0x4acff(%rip), %eax     # 0x64a46
shlq $0x30, %rax
movabsq $0xd00000000004, %rcx   # imm = 0xD00000000004
orq %rcx, %rax
movq %rax, 0x4ace1(%rip)     # 0x64a40
callq 0x5f9d
leaq 0x803000(%rax), %rdi
callq 0x5941
movq 0x30(%rbx), %rax
movq %rax, 0x4ad35(%rip)     # 0x64ab0
movq 0x70(%rbx), %rax
cmpb $0x1, 0x49(%rbx)
jne 0x19d94
cmpq $0x2d, %rax
jne 0x19da9
movl $0xb, 0x78(%rbx)
jmp 0x19db9
cmpq $0x51, %rax
je 0x19da0
cmpq $0x28, %rax
jne 0x19db2
movl $0xc, 0x78(%rbx)
jmp 0x19db9
movl $0x2, 0x78(%rbx)
jmp 0x19db9
movl $0xa, 0x78(%rbx)
movl 0x78(%rbx), %esi
movq %r12, %rdi
callq 0xc044
addq $-0x8, 0xa3604(%rip)    # 0xbd3d0
movq 0x70(%rbx), %rcx
cmpq $0x2f, %rcx
jg 0x19df0
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 0x19e1d
cmpq $0x51, %rcx
je 0x19e15
cmpq $0x29, %rcx
jne 0x19e25
movq 0x10(%rbx), %rax
cmpl $0x1, 0x10(%rax)
jne 0x19ec3
addq $0x28, %rax
movl $0xba0000, %edi         # imm = 0xBA0000
jmp 0x19e1d
movl $0xaa0000, %edi         # imm = 0xAA0000
movq %rbp, %rax
addq (%rax), %rdi
callq 0x5941
movq %rbx, %rdi
callq 0x1a732
cmpl $0xe, 0x4a9f8(%rip)     # 0x6482c
je 0x19bf3
jmp 0x19e5e
movq 0x60(%rbx), %rsi
leaq 0x4abf9(%rip), %rdi     # 0x64a40
callq 0x3bf2
leaq 0x140(%rsp), %rdi
movl $0x9, %esi
jmp 0x19d04
cmpq $0xb, 0x68(%rbx)
jne 0x19e75
movq $0x2e, 0x70(%rbx)
movq %rbx, %rdi
callq 0x1a732
movabsq $0xfff7ffffffff, %rax   # imm = 0xFFF7FFFFFFFF
andq 0x4abda(%rip), %rax     # 0x64a60
btsq $0x23, %rax
movq %rax, 0x4abce(%rip)     # 0x64a60
movq 0x58(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq 0x4a9f3(%rip), %rax     # 0x64898
jne 0x19eb1
movl $0x24, %edi
callq 0x589e
addq $0x318, %rsp            # imm = 0x318
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x397e(%rip), %rdi      # 0x1d848
leaq 0x36e3(%rip), %rsi      # 0x1d5b4
leaq 0x3aa5(%rip), %rcx      # 0x1d97d
movl $0x1f7, %edx            # imm = 0x1F7
callq 0x3170