// File: besm6[P]pascal-re/pascompl.cc
// Function: genGetElt()
void genGetElt()
{
    int64_t l5var1z, dimCnt, curDim, l5var4z, l5var5z, l5var6z,
        l5var7z, l5var8z;
    InsnList insnCopy;
    InsnListPtr copyPtr, l5ins21z;
    Word l5var22z, l5var23z;
    bool l5var24z, packed;
    TypesPtr l5var26z;
    RangeT * l5var27z;
    ilmode l5ilm28z;
    ExprPtr l5var29z;
    InsnListPtr getEltInsns[11]; // array [1..10] of InsnListPtr;
    ExprPtr & exprToGen = genFullExpr::super.back()->exprToGen;
    InsnList * &saved = formOperator::super.back()->saved;

    dimCnt = 0;
    l5var29z = exprToGen;
    while (l5var29z->op == GETELT) {
        genFullExpr(l5var29z->expr2);
        dimCnt = dimCnt + 1;
        getEltInsns[dimCnt] = insnList;
        l5var29z = l5var29z->expr1;
    }
    (void) genFullExpr(l5var29z);
    l5ins21z = insnList;
    insnCopy = *insnList;
    copyPtr = &insnCopy;
    l5var22z.m = set147z;
    for (curDim = 1; curDim <= dimCnt; ++curDim)
        l5var22z.m = l5var22z.m - getEltInsns[curDim]->regsused;
    for (curDim = dimCnt; curDim >= 1; curDim--) {
        ArrayT & array = insnCopy.typ->cast<ArrayT>();
        l5var26z = array.base;
        l5var27z = array.range;
        packed = array.pck && array.pcksize < 48;
        l5var7z = l5var27z->left;
        l5var8z = l5var26z->size;
        if (not packed)
            insnCopy.ilf6 = insnCopy.ilf6 - l5var8z * l5var7z;
        insnList = getEltInsns[curDim];
        l5ilm28z = insnList->ilm;
        if (l5ilm28z == ilCONST) {
            curVal = insnList->ilf5;
            if (curVal.i < l5var7z or
                l5var27z->right < curVal.i)
                error(29); /* errIndexOutOfBounds */
            if (packed) {
                l5var4z = curVal.i - l5var7z;
                l5var5z = array.perWord;
                insnCopy.regsused = insnCopy.regsused + Bits(0L);
                insnCopy.ilf6 = l5var4z / l5var5z + insnCopy.ilf6;
                l5var6z = (l5var5z-1-l5var4z % l5var5z) *
                    array.pcksize;
                switch (insnCopy.st) {
                case st0: insnCopy.shift = l5var6z;
                    break;
                case st1: insnCopy.shift = insnCopy.shift + l5var6z +
                        array.bits - 48;
                    break;
                case st2: error(errUsingVarAfterIndexingPackedArray);
                    break;
                } /* case */
                insnCopy.width = array.pcksize;
                insnCopy.st = st1;
            } /* 6116 */ else {
                insnCopy.ilf6 = curVal.i  * l5var26z->size +
                    insnCopy.ilf6;
            }
        } else { /* 6123*/
            if (checkBounds) {
                l5var24z = typeCheck(l5var27z, insnList->typ);
                if (rangeMismatch)
                    genFullExpr::super.back()->genCheckBounds(l5var27z);
            }
            if (l5var8z != 1) {
                prepLoad();
                if (l5var27z->base == IntegerType) {
                    l5var4z = KYTA+64;
                } else {
                    l5var4z = KYTA+64-40;
                }
                addToInsnList(array.perWord);
                insnList->next->mode = 1;
                if (l5var7z >= 0)
                    addToInsnList(l5var4z);
                else
                    addToInsnList(macro + mcMULTI);
           }
            if (l5ilm28z == il3 or
                (l5ilm28z == il1 and
                 insnList->st != st0))
                prepLoad();
           l5var23z.m = insnCopy.regsused + insnList->regsused;
           if (not packed) {
               if (insnCopy.ilf7 == 18) {
                    if (insnList->ilm == il2) {
                        insnCopy.ilf7 = 15;
                    } else { /* 6200 */
                        insnCopy.ilf7 = 16;
                        curInsnTemplate = InsnTemp[WTC];
                        prepLoad();
                        curInsnTemplate = InsnTemp[XTA];
                    }; /* 6205 */
                    insnCopy.next = insnList->next;
                    insnCopy.next2 = insnList->next2;
                } else { /* 6211 */
                    if (insnCopy.ilf7 >= 15) {
                        l5var1z = minel(l5var22z.m);
                        if (0 >= l5var1z) {
                            l5var1z = minel(set147z - insnCopy.regsused);
                            if (0 >= l5var1z)
                                l5var1z = 9;
                        }
                        saved = insnList;
                        insnList = copyPtr;
                        l5var23z.m = l5var23z.m + Bits(l5var1z);
                        if (insnCopy.ilf7 == 15) {
                            addToInsnList(InsnTemp[ATI] + l5var1z);
                        } else {
                            addToInsnList(indexreg[l5var1z] + InsnTemp[VTM]);
                        }
                        insnCopy.ilf7 = l5var1z;
                        insnCopy.regsused = insnCopy.regsused + Bits(l5var1z);
                        insnList = saved;
                    } else {
                            l5var1z = insnCopy.ilf7;
                    } /* 6251 */
                    if (insnList->regsused.has(l5var1z)) {
                        P4606();
                        insnList->next->next = insnCopy.next2;
                        insnCopy.next2 = insnList->next2;
                        insnList = copyPtr;
                        addInsnAndOffset(macro+mcADDSTK2REG, l5var1z);
                    } else {
                         if (insnList->ilm == il2) {
                             addInsnAndOffset(macro+mcADDACC2REG, l5var1z);
                         } else {
                             curInsnTemplate = InsnTemp[WTC];
                             prepLoad();
                             curInsnTemplate = InsnTemp[XTA];
                             addToInsnList(indexreg[l5var1z] + InsnTemp[UTM]);
                         }
                         insnCopy.next->next = insnList->next2;
                         insnCopy.next = insnList->next;
                     }
                } /* 6305 */
           } else { /* 6306 */
                if (insnCopy.st == st0) {
                    prepLoad();
                    if (l5var7z != 0) {
                        curVal.i = 0 - l5var7z;
                        if (not typeCheck(insnList->typ, IntegerType))
                            curVal.i.exp = 0;
                        addToInsnList(KADD+I8 + getFCSToffset());
                        insnList->next->mode = 1;
                    }
                    l5var24z = insnCopy.regsused.has(0);
                    if (l5var24z)
                        addToInsnList(macro + mcPUSH);
                    saved = insnList;
                    insnList = copyPtr;
                    setAddrTo(14);
                    if (l5var24z)
                        addToInsnList(macro + mcPOP);
                    l5var23z.m = l5var23z.m + Bits(0, 10, 11, 13) + Bits(14);
                    insnCopy.st = st2;
                    insnCopy.ilf6 = 0;
                    insnCopy.ilf5.i = 0;
                    insnCopy.width = array.pcksize;
                    curVal.i = insnCopy.width;
                    if (curVal.i == 24)
                        curVal.i = 7;
                    curVal.m = curVal.m << 24;
                    addToInsnList(allocSymtab(  /* P/00C */
                        helperNames[76] | curVal.ii)+(KVTM+I11));
                    insnCopy.ilf7 = 16;
                    insnCopy.shift = 0;
                    saved->next->next = insnCopy.next2;
                    insnCopy.next2 = saved->next2;
                } else {
                    error(errUsingVarAfterIndexingPackedArray);
                }
            } /* 6403 */
            insnCopy.regsused = l5var23z.m;
        }
        insnCopy.typ = l5var26z;
    } /* 6406 */
    insnList = l5ins21z;
    *insnList = insnCopy;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x390, %rsp            # imm = 0x390
leaq 0xcc47e(%rip), %rdi     # 0xd8a90
callq 0x203b0
movq (%rax), %rax
movq %rax, -0x148(%rbp)
leaq 0xcc450(%rip), %rdi     # 0xd8a78
callq 0x203f0
movq (%rax), %rax
addq $0x58, %rax
movq %rax, -0x150(%rbp)
movq $0x0, -0x10(%rbp)
movq -0x148(%rbp), %rax
movq (%rax), %rax
movq %rax, -0xe0(%rbp)
movq -0xe0(%rbp), %rax
cmpl $0x1c, 0x8(%rax)
jne 0xc6b7
movq -0xe0(%rbp), %rax
movq 0x18(%rax), %rsi
leaq -0x188(%rbp), %rdi
callq 0xec20
leaq -0x188(%rbp), %rdi
callq 0x20430
movq -0x10(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x10(%rbp)
movq 0x73ad1(%rip), %rcx     # 0x80168
movq -0x10(%rbp), %rax
movq %rcx, -0x140(%rbp,%rax,8)
movq -0xe0(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0xe0(%rbp)
jmp 0xc654
movq -0xe0(%rbp), %rsi
leaq -0x1c0(%rbp), %rdi
callq 0xec20
leaq -0x1c0(%rbp), %rdi
callq 0x20430
movq 0x73a8b(%rip), %rax     # 0x80168
movq %rax, -0xa8(%rbp)
movq 0x73a7d(%rip), %rsi     # 0x80168
leaq -0x98(%rbp), %rdi
movl $0x58, %edx
callq 0x4220
leaq -0x98(%rbp), %rax
movq %rax, -0xa0(%rbp)
movq 0x73a0f(%rip), %rax     # 0x80120
movq %rax, -0xb0(%rbp)
movq $0x1, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq -0x10(%rbp), %rax
jg 0xc777
leaq -0xb0(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0x140(%rbp,%rax,8), %rax
movq 0x18(%rax), %rax
movq %rax, -0x1d0(%rbp)
movq -0x1d0(%rbp), %rsi
callq 0x1e4e0
movq %rax, -0x1c8(%rbp)
movq -0x1c8(%rbp), %rax
movq %rax, -0xb0(%rbp)
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xc720
movq -0x10(%rbp), %rax
movq %rax, -0x18(%rbp)
cmpq $0x1, -0x18(%rbp)
jl 0xd16d
movq -0x88(%rbp), %rdi
callq 0x1e210
movq %rax, -0x1d8(%rbp)
movq -0x1d8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0xc8(%rbp)
movq -0x1d8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0xd0(%rbp)
movq -0x1d8(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x28(%rcx)
movb %al, -0x331(%rbp)
je 0xc7eb
movq -0x1d8(%rbp), %rax
cmpq $0x30, 0x38(%rax)
setl %al
movb %al, -0x331(%rbp)
movb -0x331(%rbp), %al
andb $0x1, %al
movb %al, -0xba(%rbp)
movq -0xd0(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0xc8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x40(%rbp)
testb $0x1, -0xba(%rbp)
jne 0xc833
movq -0x68(%rbp), %rax
movq -0x40(%rbp), %rcx
imulq -0x38(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x18(%rbp), %rax
movq -0x140(%rbp,%rax,8), %rax
movq %rax, 0x73922(%rip)     # 0x80168
movq 0x7391b(%rip), %rax     # 0x80168
movl 0x20(%rax), %eax
movl %eax, -0xd4(%rbp)
cmpl $0x0, -0xd4(%rbp)
jne 0xca08
movq 0x738fe(%rip), %rax     # 0x80168
movq 0x28(%rax), %rax
movq %rax, 0x7387b(%rip)     # 0x800f0
leaq 0x73874(%rip), %rdi     # 0x800f0
callq 0x1dfb0
cmpq -0x38(%rbp), %rax
jl 0xc8b4
movq -0xd0(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x340(%rbp)
leaq 0x73850(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq %rax, %rcx
movq -0x340(%rbp), %rax
cmpq %rcx, %rax
jge 0xc8be
movl $0x1d, %edi
callq 0x7b40
testb $0x1, -0xba(%rbp)
je 0xc9e4
leaq 0x7381e(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq -0x38(%rbp), %rcx
subq %rcx, %rax
movq %rax, -0x20(%rbp)
movq -0x1d8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x28(%rbp)
leaq -0x80(%rbp), %rax
movq %rax, -0x350(%rbp)
xorl %eax, %eax
movl %eax, %edi
callq 0x48e0
movq -0x350(%rbp), %rdi
movq %rax, -0x1e8(%rbp)
movq -0x1e8(%rbp), %rsi
callq 0x1db20
movq %rax, -0x1e0(%rbp)
movq -0x1e0(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x20(%rbp), %rax
movq -0x28(%rbp), %rcx
cqto
idivq %rcx
movq -0x68(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x68(%rbp)
movq -0x28(%rbp), %rcx
movq -0x20(%rbp), %rax
cqto
idivq %rcx
movq %rdx, %rax
notq %rax
addq %rcx, %rax
movq -0x1d8(%rbp), %rcx
movq 0x38(%rcx), %rcx
imulq %rcx, %rax
movq %rax, -0x30(%rbp)
movl -0x58(%rbp), %eax
movl %eax, -0x344(%rbp)
testl %eax, %eax
je 0xc99b
jmp 0xc981
movl -0x344(%rbp), %eax
subl $0x1, %eax
je 0xc9a5
jmp 0xc98e
movl -0x344(%rbp), %eax
subl $0x2, %eax
je 0xc9c2
jmp 0xc9cc
movq -0x30(%rbp), %rax
movq %rax, -0x48(%rbp)
jmp 0xc9cc
movq -0x48(%rbp), %rax
addq -0x30(%rbp), %rax
movq -0x1d8(%rbp), %rcx
addq 0x8(%rcx), %rax
subq $0x30, %rax
movq %rax, -0x48(%rbp)
jmp 0xc9cc
movl $0x1c, %edi
callq 0x7b40
movq -0x1d8(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x50(%rbp)
movl $0x1, -0x58(%rbp)
jmp 0xca03
leaq 0x73705(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq -0xc8(%rbp), %rcx
imulq (%rcx), %rax
addq -0x68(%rbp), %rax
movq %rax, -0x68(%rbp)
jmp 0xd14e
testb $0x1, 0x7362b(%rip)     # 0x8003a
je 0xcab3
movq -0xd0(%rbp), %rsi
movq 0x73745(%rip), %rax     # 0x80168
movq 0x10(%rax), %rdx
leaq -0x230(%rbp), %rdi
movq %rdi, -0x360(%rbp)
callq 0xb280
movq -0x360(%rbp), %rdi
callq 0x1e950
movb %al, -0x351(%rbp)
jmp 0xca4e
movb -0x351(%rbp), %al
andb $0x1, %al
movb %al, -0xb9(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x1e9c0
testb $0x1, 0x735c9(%rip)     # 0x80038
je 0xcab1
leaq 0xcc018(%rip), %rdi     # 0xd8a90
callq 0x203b0
movq (%rax), %rdi
movq -0xd0(%rbp), %rsi
callq 0x20450
jmp 0xcab1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x230(%rbp), %rdi
callq 0x1e9c0
jmp 0xd19c
jmp 0xcab3
cmpq $0x1, -0x40(%rbp)
je 0xcb25
callq 0xbd10
movq -0xd0(%rbp), %rax
movq 0x18(%rax), %rax
cmpq 0x735d7(%rip), %rax     # 0x800a8
jne 0xcadd
movq $0x19040, -0x20(%rbp)   # imm = 0x19040
jmp 0xcae5
movq $0x19018, -0x20(%rbp)   # imm = 0x19018
movq -0x1d8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xbbb0
movq 0x7366c(%rip), %rax     # 0x80168
movq (%rax), %rax
movq $0x1, 0x8(%rax)
cmpq $0x0, -0x38(%rbp)
jl 0xcb19
movq -0x20(%rbp), %rdi
callq 0xbbb0
jmp 0xcb23
movl $0x1000007, %edi        # imm = 0x1000007
callq 0xbbb0
jmp 0xcb25
cmpl $0x3, -0xd4(%rbp)
je 0xcb44
cmpl $0x1, -0xd4(%rbp)
jne 0xcb49
movq 0x7362a(%rip), %rax     # 0x80168
cmpl $0x0, 0x40(%rax)
je 0xcb49
callq 0xbd10
leaq -0x98(%rbp), %rdi
addq $0x18, %rdi
movq 0x7360d(%rip), %rax     # 0x80168
movq 0x18(%rax), %rax
movq %rax, -0x250(%rbp)
movq -0x250(%rbp), %rsi
callq 0x1db20
movq %rax, -0x248(%rbp)
movq -0x248(%rbp), %rax
movq %rax, -0xb8(%rbp)
testb $0x1, -0xba(%rbp)
jne 0xce67
cmpq $0x12, -0x60(%rbp)
jne 0xcc03
movq 0x735c6(%rip), %rax     # 0x80168
cmpl $0x2, 0x20(%rax)
jne 0xcbb2
movq $0xf, -0x60(%rbp)
jmp 0xcbdb
movq $0x10, -0x60(%rbp)
movq 0x77faf(%rip), %rax     # 0x84b70
movq %rax, 0x73358(%rip)     # 0x7ff20
callq 0xbd10
movq 0x77e9c(%rip), %rax     # 0x84a70
movq %rax, 0x73345(%rip)     # 0x7ff20
movq 0x73586(%rip), %rax     # 0x80168
movq (%rax), %rax
movq %rax, -0x98(%rbp)
movq 0x73575(%rip), %rax     # 0x80168
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
jmp 0xce62
cmpq $0xf, -0x60(%rbp)
jl 0xcd76
movq -0xb0(%rbp), %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
callq 0x85f0
movq %rax, -0x8(%rbp)
xorl %eax, %eax
cmpq -0x8(%rbp), %rax
jl 0xcc7b
movq -0x80(%rbp), %rax
movq %rax, -0x268(%rbp)
movq -0x268(%rbp), %rsi
leaq 0x734d3(%rip), %rdi     # 0x80120
callq 0x1e4e0
movq %rax, -0x260(%rbp)
movq -0x260(%rbp), %rdi
callq 0x85f0
movq %rax, -0x8(%rbp)
xorl %eax, %eax
cmpq -0x8(%rbp), %rax
jl 0xcc79
movq $0x9, -0x8(%rbp)
jmp 0xcc7b
movq 0x734e6(%rip), %rcx     # 0x80168
movq -0x150(%rbp), %rax
movq %rcx, (%rax)
movq -0xa0(%rbp), %rax
movq %rax, 0x734ce(%rip)     # 0x80168
leaq -0xb8(%rbp), %rax
movq %rax, -0x368(%rbp)
movq -0x8(%rbp), %rdi
callq 0x48e0
movq -0x368(%rbp), %rdi
movq %rax, -0x278(%rbp)
movq -0x278(%rbp), %rsi
callq 0x1db20
movq %rax, -0x270(%rbp)
movq -0x270(%rbp), %rax
movq %rax, -0xb8(%rbp)
cmpq $0xf, -0x60(%rbp)
jne 0xccf9
movq 0x77e42(%rip), %rdi     # 0x84b30
addq -0x8(%rbp), %rdi
callq 0xbbb0
jmp 0xcd14
movq -0x8(%rbp), %rcx
leaq 0x7782c(%rip), %rax     # 0x84530
movq (%rax,%rcx,8), %rdi
addq 0x77e69(%rip), %rdi     # 0x84b78
callq 0xbbb0
movq -0x8(%rbp), %rax
movq %rax, -0x60(%rbp)
leaq -0x98(%rbp), %rax
addq $0x18, %rax
movq %rax, -0x370(%rbp)
movq -0x8(%rbp), %rdi
callq 0x48e0
movq -0x370(%rbp), %rdi
movq %rax, -0x288(%rbp)
movq -0x288(%rbp), %rsi
callq 0x1db20
movq %rax, -0x280(%rbp)
movq -0x280(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x150(%rbp), %rax
movq (%rax), %rax
movq %rax, 0x733f4(%rip)     # 0x80168
jmp 0xcd7e
movq -0x60(%rbp), %rax
movq %rax, -0x8(%rbp)
movq 0x733e3(%rip), %rdi     # 0x80168
addq $0x18, %rdi
movq -0x8(%rbp), %rsi
callq 0x1e5f0
testb $0x1, %al
jne 0xcd98
jmp 0xcde1
callq 0xc1f0
movq -0x90(%rbp), %rcx
movq 0x733bd(%rip), %rax     # 0x80168
movq (%rax), %rax
movq %rcx, (%rax)
movq 0x733b0(%rip), %rax     # 0x80168
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
movq -0xa0(%rbp), %rax
movq %rax, 0x73397(%rip)     # 0x80168
movq -0x8(%rbp), %rsi
movl $0x1000008, %edi        # imm = 0x1000008
callq 0xbc40
jmp 0xce60
movq 0x73380(%rip), %rax     # 0x80168
cmpl $0x2, 0x20(%rax)
jne 0xcdfe
movq -0x8(%rbp), %rsi
movl $0x1000009, %edi        # imm = 0x1000009
callq 0xbc40
jmp 0xce3a
movq 0x77d6b(%rip), %rax     # 0x84b70
movq %rax, 0x73114(%rip)     # 0x7ff20
callq 0xbd10
movq 0x77c58(%rip), %rax     # 0x84a70
movq %rax, 0x73101(%rip)     # 0x7ff20
movq -0x8(%rbp), %rcx
leaq 0x77706(%rip), %rax     # 0x84530
movq (%rax,%rcx,8), %rdi
addq 0x77d4b(%rip), %rdi     # 0x84b80
callq 0xbbb0
movq 0x73327(%rip), %rax     # 0x80168
movq 0x8(%rax), %rcx
movq -0x98(%rbp), %rax
movq %rcx, (%rax)
movq 0x73312(%rip), %rax     # 0x80168
movq (%rax), %rax
movq %rax, -0x98(%rbp)
jmp 0xce62
jmp 0xd143
cmpl $0x0, -0x58(%rbp)
jne 0xd137
callq 0xbd10
cmpq $0x0, -0x38(%rbp)
je 0xcf5a
movq -0x38(%rbp), %rsi
negq %rsi
leaq 0x73261(%rip), %rdi     # 0x800f0
callq 0x4ad0
movq 0x732cd(%rip), %rax     # 0x80168
movq 0x10(%rax), %rsi
movq 0x73202(%rip), %rdx     # 0x800a8
leaq -0x2d0(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0xb280
movq -0x380(%rbp), %rdi
callq 0x1e950
movb %al, -0x371(%rbp)
jmp 0xcecd
movb -0x371(%rbp), %al
xorb $-0x1, %al
movb %al, -0x381(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x1e9c0
movb -0x381(%rbp), %al
testb $0x1, %al
jne 0xcef3
jmp 0xcf34
movabsq $-0xfe0000000001, %rax  # imm = 0xFFFF01FFFFFFFFFF
andq 0x731ec(%rip), %rax     # 0x800f0
orq $0x0, %rax
movq %rax, 0x731e1(%rip)     # 0x800f0
jmp 0xcf34
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x238(%rbp)
movl %eax, -0x23c(%rbp)
leaq -0x2d0(%rbp), %rdi
callq 0x1e9c0
jmp 0xd19c
callq 0x8580
movq %rax, %rdi
addq $0x804000, %rdi         # imm = 0x804000
callq 0xbbb0
movq 0x73219(%rip), %rax     # 0x80168
movq (%rax), %rax
movq $0x1, 0x8(%rax)
leaq -0x98(%rbp), %rdi
addq $0x18, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x1e5f0
andb $0x1, %al
movb %al, -0xb9(%rbp)
testb $0x1, -0xb9(%rbp)
je 0xcf89
movl $0x1000005, %edi        # imm = 0x1000005
callq 0xbbb0
movq 0x731d8(%rip), %rcx     # 0x80168
movq -0x150(%rbp), %rax
movq %rcx, (%rax)
movq -0xa0(%rbp), %rax
movq %rax, 0x731c0(%rip)     # 0x80168
leaq -0x308(%rbp), %rdi
movl $0xe, %esi
callq 0x205b0
testb $0x1, -0xb9(%rbp)
je 0xcfcc
movl $0x1000004, %edi        # imm = 0x1000004
callq 0xbbb0
leaq -0xb8(%rbp), %rax
movq %rax, -0x390(%rbp)
xorl %eax, %eax
movl %eax, %edi
movl $0xa, %esi
movl $0xb, %edx
movl $0xd, %ecx
callq 0x4a00
movq -0x390(%rbp), %rdi
movq %rax, -0x320(%rbp)
movq -0x320(%rbp), %rsi
callq 0x1db20
movq %rax, -0x318(%rbp)
movl $0xe, %edi
callq 0x48e0
movq %rax, -0x328(%rbp)
movq -0x328(%rbp), %rsi
leaq -0x318(%rbp), %rdi
callq 0x1db20
movq %rax, -0x310(%rbp)
movq -0x310(%rbp), %rax
movq %rax, -0xb8(%rbp)
movl $0x2, -0x58(%rbp)
movq $0x0, -0x68(%rbp)
leaq -0x98(%rbp), %rdi
addq $0x28, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x4ad0
movq -0x1d8(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rsi
leaq 0x73067(%rip), %rdi     # 0x800f0
callq 0x4ad0
leaq 0x7305b(%rip), %rdi     # 0x800f0
callq 0x1dfb0
cmpq $0x18, %rax
jne 0xd0b1
leaq 0x73049(%rip), %rdi     # 0x800f0
movl $0x7, %esi
callq 0x4ad0
leaq 0x73038(%rip), %rdi     # 0x800f0
movl $0x18, %esi
callq 0x1e650
movq %rax, -0x330(%rbp)
movq -0x330(%rbp), %rax
movq %rax, 0x73019(%rip)     # 0x800f0
movq 0x327b2(%rip), %rdi     # 0x3f890
orq 0x7300b(%rip), %rdi     # 0x800f0
callq 0x8390
movq %rax, %rdi
addq $0xba0000, %rdi         # imm = 0xBA0000
callq 0xbbb0
movq $0x10, -0x60(%rbp)
movq $0x0, -0x48(%rbp)
movq -0x90(%rbp), %rcx
movq -0x150(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq %rcx, (%rax)
movq -0x150(%rbp), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq %rax, -0x90(%rbp)
jmp 0xd141
movl $0x1c, %edi
callq 0x7b40
jmp 0xd143
movq -0xb8(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x18(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x18(%rbp)
jmp 0xc77f
movq -0xa8(%rbp), %rax
movq %rax, 0x72fed(%rip)     # 0x80168
movq 0x72fe6(%rip), %rdi     # 0x80168
leaq -0x98(%rbp), %rsi
movl $0x58, %edx
callq 0x4220
addq $0x390, %rsp            # imm = 0x390
popq %rbp
retq
movq -0x238(%rbp), %rdi
callq 0x44c0
nopl (%rax,%rax)