// File: besm6[P]pascal-re/pascompl.cc
// Function: ParseData::P16432(long)
void P16432(int64_t l5arg1z) {
        DATAREC l5var1z;

        l5var1z.assn(0, allocDataRef(l4var4z.i));
        if (FcstCnt == l4var3z.i) {
            curVal = l4var8z;
            curVal.i = addCurValToFCST();
        } else {
            curVal = l4var3z;
        }
        l5var1z.assn(1, allocSymtab(0400100000000L | (curVal.ii & halfWord)));
        l5var1z.assn(2, allocDataRef(l5arg1z));
        if (l4var9z.i == 0) {
            curVal.m = l4var7z.m >> 24;
        } else {
            curVal.i = allocSymtab(l4var7z.ii | (l4var9z.ii & halfWord));
        }
        l5var1z.assn(3, curVal.i);
        l4var9z.i = l5arg1z * l4var4z.i + l4var9z.i;
        F.push_back(l5var1z);
        setcount = setcount + 1;
        l4var4z.i = 0;
        l4var3z.i = FcstCnt;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x30(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x279b0
movq -0x30(%rbp), %rdi
addq $0x18, %rdi
callq 0x1dfb0
movq -0x30(%rbp), %rdi
movq %rax, %rsi
callq 0x27a50
movq %rax, %rdx
leaq -0x18(%rbp), %rdi
xorl %esi, %esi
callq 0x279d0
movq -0x30(%rbp), %rdi
movq 0x5883d(%rip), %rax     # 0x7fef0
movq %rax, -0x28(%rbp)
addq $0x10, %rdi
callq 0x1dfb0
movq %rax, %rcx
movq -0x28(%rbp), %rax
cmpq %rcx, %rax
jne 0x276f1
movq -0x30(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, 0x58a15(%rip)     # 0x800f0
callq 0x8170
movq %rax, %rsi
leaq 0x58a06(%rip), %rdi     # 0x800f0
callq 0x4ad0
jmp 0x27700
movq -0x30(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, 0x589f0(%rip)     # 0x800f0
movq 0x589e9(%rip), %rdi     # 0x800f0
andq $0xffffff, %rdi         # imm = 0xFFFFFF
movabsq $0x801000000, %rax      # imm = 0x801000000
orq %rax, %rdi
callq 0x8390
movq %rax, %rdx
leaq -0x18(%rbp), %rdi
movl $0x1, %esi
callq 0x279d0
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x27a50
movq %rax, %rdx
leaq -0x18(%rbp), %rdi
movl $0x2, %esi
callq 0x279d0
movq -0x30(%rbp), %rdi
addq $0x40, %rdi
callq 0x1dfb0
cmpq $0x0, %rax
jne 0x27785
movq -0x30(%rbp), %rdi
addq $0x30, %rdi
movl $0x18, %esi
callq 0x27ab0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, 0x5896d(%rip)     # 0x800f0
jmp 0x277ae
movq -0x30(%rbp), %rax
movq 0x30(%rax), %rdi
movq 0x40(%rax), %rax
andq $0xffffff, %rax         # imm = 0xFFFFFF
orq %rax, %rdi
callq 0x8390
movq %rax, %rsi
leaq 0x58947(%rip), %rdi     # 0x800f0
callq 0x4ad0
leaq 0x5893b(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq %rax, %rdx
leaq -0x18(%rbp), %rdi
movl $0x3, %esi
callq 0x279d0
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
addq $0x18, %rdi
callq 0x1dfb0
movq -0x30(%rbp), %rdi
movq %rax, %rcx
movq -0x40(%rbp), %rax
imulq %rcx, %rax
movq %rax, -0x38(%rbp)
addq $0x40, %rdi
callq 0x1dfb0
movq -0x38(%rbp), %rsi
movq -0x30(%rbp), %rdi
addq %rax, %rsi
addq $0x40, %rdi
callq 0x4ad0
movq -0x30(%rbp), %rdi
addq $0x48, %rdi
leaq -0x18(%rbp), %rsi
callq 0x27b10
movq -0x30(%rbp), %rdi
movq 0x8(%rdi), %rax
addq $0x1, %rax
movq %rax, 0x8(%rdi)
addq $0x18, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4ad0
movq -0x30(%rbp), %rdi
movq 0x586a7(%rip), %rsi     # 0x7fef0
addq $0x10, %rdi
callq 0x4ad0
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)