// File: besm6[P]pascal-re/pascompl.cc
// Function: formFileInit()
void formFileInit()
{
    ExtFileRec * l4exf1z;
    TypesPtr l4var2z;
    IdentRecPtr l4var3z;
    int64_t l4int4z, l4int5z;

    if (optSflags.m.has(S5) ||
        (externFileList == NULL && inputFile == NULL && outputFile == NULL)) {
        formAndAlign(KUJ+I13);
        return;
    }
    form2Insn(KITS+13, KATX+SP);
    while (curExpr != NULL) {
        l4exf1z = reinterpret_cast<ExtFileRec*>(curExpr->typ);
        l4var3z = curExpr->id2;
        l4int4z = l4var3z->value();
        l4var2z = l4var3z->typ->cast<FileT>().fbase;
        l4int5z = l4var3z->typ->cast<FileT>().elsize;
        if (l4int4z < 074000) {
            form1Insn(getValueOrAllocSymtab(l4int4z) +
                      InsnTemp[UTC] + I7);
            l4int4z = 0;
        }
        form3Insn(KVTM+I12 + l4int4z, KVTM+I10 + fileBufSize,
                  KVTM+I9 + l4int5z);
        form1Insn(KVTM+I11 + l4var2z->size);
        if (l4exf1z == NULL) {
            form1Insn(InsnTemp[XTA]);
        } else {
            curVal.i = l4exf1z->location;
            if (curVal.i == 512)
                curVal.ii = l4exf1z->offset;
            form1Insn(KXTA+I8 + getFCSToffset());
        }
        formAndAlign(getHelperProc(69)); /*"P/CO"*/
        curVal.ii = l4var3z->id;
        form2Insn(KXTA+I8+getFCSToffset(), KATX+I12+26);
        if ((l4int5z != 0) and
            typeCheck(l4var2z, IntegerType))
            form2Insn(KXTA+ZERO, KATX+I12+25);
        curExpr = curExpr->expr1;
    }
    form1Insn(getHelperProc(70)/*"P/IT"*/ + (-I13-0100000));
    padToLeft();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
leaq 0x6f11e(%rip), %rdi     # 0x80130
movl $0x2, %esi
callq 0x1e5f0
testb $0x1, %al
jne 0x1103e
cmpq $0x0, 0x6f048(%rip)     # 0x80070
jne 0x1104d
cmpq $0x0, 0x6f01e(%rip)     # 0x80050
jne 0x1104d
cmpq $0x0, 0x6f00c(%rip)     # 0x80048
jne 0x1104d
movl $0xdc0000, %edi         # imm = 0xDC0000
callq 0x7f20
jmp 0x112af
movl $0x2300d, %edi          # imm = 0x2300D
movl $0xf00000, %esi         # imm = 0xF00000
callq 0x7da0
cmpq $0x0, 0x6f0fc(%rip)     # 0x80160
je 0x11291
movq 0x6f0ef(%rip), %rax     # 0x80160
movq (%rax), %rax
movq %rax, -0x8(%rbp)
movq 0x6f0e1(%rip), %rax     # 0x80160
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0x1e6b0
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x1ebe0
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x1ebe0
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x7800, -0x20(%rbp)    # imm = 0x7800
jge 0x110f2
movq -0x20(%rbp), %rdi
callq 0x8870
movq %rax, %rdi
addq 0x73a8a(%rip), %rdi     # 0x84b68
addq $0x700000, %rdi         # imm = 0x700000
callq 0x7c20
movq $0x0, -0x20(%rbp)
movq -0x20(%rbp), %rdi
addq $0xca0000, %rdi         # imm = 0xCA0000
movq 0x6ee04(%rip), %rsi     # 0x7ff08
addq $0xaa0000, %rsi         # imm = 0xAA0000
movq -0x28(%rbp), %rdx
addq $0x9a0000, %rdx         # imm = 0x9A0000
callq 0x7dd0
movq -0x10(%rbp), %rax
movq (%rax), %rdi
addq $0xba0000, %rdi         # imm = 0xBA0000
callq 0x7c20
cmpq $0x0, -0x8(%rbp)
jne 0x11143
movq 0x73934(%rip), %rdi     # 0x84a70
callq 0x7c20
jmp 0x1118e
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
leaq 0x6ef9e(%rip), %rdi     # 0x800f0
callq 0x4ad0
leaq 0x6ef92(%rip), %rdi     # 0x800f0
callq 0x1dfb0
cmpq $0x200, %rax            # imm = 0x200
jne 0x1117a
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, 0x6ef76(%rip)     # 0x800f0
callq 0x8580
movq %rax, %rdi
addq $0x808000, %rdi         # imm = 0x808000
callq 0x7c20
movl $0x45, %edi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq %rax, 0x6ef42(%rip)     # 0x800f0
callq 0x8580
movq %rax, %rdi
addq $0x808000, %rdi         # imm = 0x808000
movl $0xc0001a, %esi         # imm = 0xC0001A
callq 0x7da0
movq -0x28(%rbp), %rcx
movb $0x0, -0x71(%rbp)
xorl %eax, %eax
cmpq $0x0, %rcx
movb %al, -0x85(%rbp)
je 0x1121e
movq -0x10(%rbp), %rsi
movq 0x6eec0(%rip), %rdx     # 0x800a8
leaq -0x70(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0xb280
movq -0x90(%rbp), %rdi
movb $0x1, -0x71(%rbp)
callq 0x1e950
movb %al, -0x86(%rbp)
jmp 0x11210
movb -0x86(%rbp), %al
movb %al, -0x85(%rbp)
jmp 0x1121e
movb -0x85(%rbp), %al
movb %al, -0x91(%rbp)
testb $0x1, -0x71(%rbp)
jne 0x11232
jmp 0x1123b
leaq -0x70(%rbp), %rdi
callq 0x1e9c0
movb -0x91(%rbp), %al
testb $0x1, %al
jne 0x11247
jmp 0x1127a
movl $0x108009, %edi         # imm = 0x108009
movl $0xc00019, %esi         # imm = 0xC00019
callq 0x7da0
jmp 0x1127a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x80(%rbp)
movl %eax, -0x84(%rbp)
testb $0x1, -0x71(%rbp)
jne 0x1126f
jmp 0x11278
leaq -0x70(%rbp), %rdi
callq 0x1e9c0
jmp 0x112b8
movq 0x6eedf(%rip), %rax     # 0x80160
movq 0x10(%rax), %rax
movq %rax, 0x6eed4(%rip)     # 0x80160
jmp 0x1105c
movl $0x46, %edi
callq 0x80d0
movq %rax, %rdi
addq $-0xd08000, %rdi        # imm = 0xFF2F8000
callq 0x7c20
callq 0x7ef0
addq $0xa0, %rsp
popq %rbp
retq
movq -0x80(%rbp), %rdi
callq 0x44c0
nopw %cs:(%rax,%rax)