// File: /workspace/github_cpp_makefile_star2_O1/besm6[P]pascal-re/pascompl.cc
// Function: genOneOp::genOneOp()
genOneOp() {
        if (insnList == NULL)
            return;
        regsUsed = regsUsed + insnList->regsused;
        l4oi212z = insnList->next2;
        l4var9z = KNTR+7;
        insnBufIdx = 1;
        if (l4oi212z == NULL)
            return;
        l4inl6z = NULL;

        while (l4oi212z != NULL) {
            tempInsn.i = l4oi212z->code;
            l4var4z = tempInsn.i -  macro;
            curInsn.i = l4oi212z->offset;
            switch (l4oi212z->mode) {
            case 0: break;
            case 1: if (arithMode != 1) {
                    addInsnToBuf(KNTR+7);
                    arithMode = 1;
                } break;
            case 2:
                arithMode = 1;
                break;
            case 3: if (arithMode != 2) {
                    addInsnToBuf(InsnTemp[NTR]);
                    arithMode = 2;
                } break;
            case 4:
                arithMode = 2;
                break;
            }; /* case */
            l4oi212z = l4oi212z->next;
            if (l4var4z >= 0) {
                switch (l4var4z) {
                case mcCARD: {
                    add2InsnsToBuf(KACX, KAEX+ZERO);
                } break;
                case 21:
                    goto L3556;
                case 0:
                    addJumpInsn(InsnTemp[UZA]);
                    break;
                case 1:
                    addJumpInsn(InsnTemp[U1A]);
                    break;
                case 2: {
                      tempInsn.i = curInsn.i % 4096;
                      curInsn.i = curInsn.i / 4096;
                      addJumpInsn(InsnTemp[UJ]);
                      curInsn.i = tempInsn.i;
L3556:
                      if (F3413())
                          addInsnToBuf(2*macro+ord(l4inl7z));
                      else
                          error(206);
                } break;
                case 3: {
                      tempInsn.i = curInsn.i % 4096;
                      curInsn.i = curInsn.i / 4096;
                      l4var213z =  F3413();
                      l4inl8z = l4inl7z;
                      curInsn.i = tempInsn.i;
                      l4var213z = l4var213z && F3413();
                      if (l4var213z) {
                          l4inl7z->code = macro;
                          l4inl7z->offset = ord(l4inl8z);
                      }
                      else
                          error(207);
                } break;
                case 20:
                    addInsnToBuf(3*macro + curInsn.i);
                    break;
                case 4: {
                    if (insnBuf[insnBufIdx-1].m * (BitRange(21,23)+BitRange(28,35)) == Bits())
                        insnBuf[insnBufIdx-1].m = insnBuf[insnBufIdx-1].m + Bits(35);
                    else
                        addInsnToBuf(KXTA+SP);
                } break;
                case 5:
                    /*blk*/ {
                    if (l4oi212z != NULL) {
                        tempInsn.i = l4oi212z->code;
                        if (tempInsn.m * (BitRange(21,23)+BitRange(28,35)) == Bits(32)) {
                            l4oi212z->code =
                                tempInsn.i - InsnTemp[XTA] + InsnTemp[XTS];
                            break; // exit blk
                        }
                    };
                    addInsnToBuf(KATX+SP);
                } break;
                case mcACC2ADDR:
                    add2InsnsToBuf(KATI+14, KUTC+I14);
                    break;
                case mcMULTI: {
                    addInsnToBuf(getHelperProc(12));        /* P/MI */
                } break;
                case mcADDSTK2REG:
                    add2InsnsToBuf(KWTC+SP, KUTM+indexreg[curInsn.i]);
                    break;
                case mcADDACC2REG:
                    add2InsnsToBuf(KATI+14, KJADDM+I14 + curInsn.i);
                    break;
                case mcODD: {
                    add2InsnsToBuf(KAAX+E1, KAEX+ZERO);
                } break;
                case mcROUND: {
                    addInsnToBuf(KADD+REAL05);                /* round */
                    add2InsnsToBuf(KNTR+7, KADD+ZERO);
                } break;
                case mcSQRR: {
                    add2InsnsToBuf(KATX+SP, KMUL+SP);   /* sqr */
                } break;
                case mcSQRI: {
                    add2InsnsToBuf(KATX+SP, KAEX+MULTMASK);   /* sqrint */
                    add2InsnsToBuf(KMUL+SP, KYTA+64);
                } break;
                case 14:
                    add2InsnsToBuf(indexreg[curInsn.i] + KVTM, KITA + curInsn.i);
                    break;
                case mcMINEL: {
                    add2InsnsToBuf(KANX+ZERO, KSUB+PLUS1);   /* minel */
                } break;
                case 16:
                    add2InsnsToBuf(InsnTemp[XTA], KATX+SP + curInsn.i);
                    break;
                case 17: {
                    addInsnToBuf(KXTS);
                    add2InsnsToBuf(KATX+SP+1, KUTM+SP + curInsn.i);
                } break;
                case 18:
                    add2InsnsToBuf(KVTM+I10, getHelperProc(65)); /* P/B7 */
                    break;
                case mcPOP2ADDR: {
                    addInsnToBuf(KVTM+I14);
                    add2InsnsToBuf(KXTA+SP, KATX+I14);
                } break;
                case 22: {
                    add2InsnsToBuf(KVTM+I14, KXTA+I14);
                      curVal.ii = 040077777;
                      add2InsnsToBuf(allocSymtab(curVal.ii) + (KXTS+SP),
                                     KAAX+I8 + curInsn.i);
                      add2InsnsToBuf(KAEX+SP, KATX+I14);
                } break;
                }; /* case */
            } else { /* 4003 */
                if (tempInsn.m.has(28)) {
                    addInsnToBuf(getValueOrAllocSymtab(curInsn.i)+tempInsn.i);
                } else {
                    curVal.i = curInsn.i & 077777;
                    if (curVal.i < 2048)
                        addInsnToBuf(tempInsn.i + curInsn.i);
                    else
                        if ((curVal.i >= 28672) or (curVal.i < 4096)) {
                            addInsnToBuf(
                                allocSymtab((curVal.ii | 040000000) & halfWord)
                                + tempInsn.i - 28672);
                        } else {
                            add2InsnsToBuf(getValueOrAllocSymtab(curVal.i)
                                           + InsnTemp[UTC], tempInsn.i);
                        }
                }
            }
        }; /* 4037 */
        insnBufIdx = insnBufIdx-1;

        for (l4var4z = insnBufIdx; l4var4z >= 1; --l4var4z) {
            curInsn = insnBuf[l4var4z];
            if ((curInsn.i == InsnTemp[NTR]) or
                (curInsn.i == KNTR+7)) {
                l4var3z = l4var4z - 1;
                l4var213z = false;
                while (l4var3z >= 1) {
                    tempInsn.m = insnBuf[l4var3z].m * BitRange(28,32);
                    if ((tempInsn.ii != KUTC) and (tempInsn.ii != KWTC))
                        break;
                    l4var3z = l4var3z-1;
                };

                l4var3z = l4var3z + 1;
                if (l4var3z != l4var4z) {
                    for (l4var2z = l4var4z-1;  l4var2z >= l4var3z; --l4var2z) {
                        insnBuf[l4var2z+1] = insnBuf[l4var2z];
                    }
                }
                insnBuf[l4var3z] = curInsn;
            } /* 4103 */
        }
        for (l4var4z = 1; l4var4z <= insnBufIdx; ++l4var4z)
            /*iter*/  {
            curInsn = insnBuf[l4var4z];
            tempInsn.m = curInsn.m * (Bits(0, 1, 3) + BitRange(23,32));
            if (tempInsn.i == KATX+SP) {
                l4var2z = l4var4z + 1;
                while (insnBufIdx + 1 != l4var2z) {
                    curVal.m = insnBuf[l4var2z].m * (Bits(0, 1, 3, 23) + BitRange(28,35));
                    tempInsn.m = curVal.m * (Bits(0, 1, 3, 23) + BitRange(28,32));
                    if (curVal.i == InsnTemp[XTA]) {
                        insnBuf[l4var2z].m =
                            insnBuf[l4var2z].m ^ Bits(32, 34, 35);
                        goto exit_iter;
                    } else if (curVal.i == InsnTemp[ITA]) {
                        insnBuf[l4var2z].m = insnBuf[l4var2z].m + Bits(35);
                        goto exit_iter;
                    } else if ((curVal.i == InsnTemp[NTR]) or
                               (tempInsn.i == InsnTemp[UTC]) or
                               (tempInsn.i == InsnTemp[WTC]) or
                               (tempInsn.i == InsnTemp[VTM]))
                        l4var2z = l4var2z + 1;
                    else
                        l4var2z = insnBufIdx + 1;
                }
            } /* 4150 */
            if (curInsn.i == InsnTemp[UTC])
                continue; // exit iter
            if (curInsn.i < macro) {
                form1Insn(curInsn.i);
                tempInsn.m = curInsn.m * BitRange(28,32);
                if ((tempInsn.i == 03100000) or /* VJM */
                    (tempInsn.i == 00500000))    /* ELFUN */
                    {
                        padToLeft();
                        prevOpcode = 1;
                    };
                continue; // exit iter
            }
            if (curInsn.i >= 3*macro) {
                curInsn.i = curInsn.i - (3*macro);
                if (curInsn.i >= 4096) {
                    l4var213z = true;
                    curInsn.i = curInsn.i - 4096;
                } else {
                  l4var213z = false;
                }
                if (curInsn.i == 0)
                    form1Insn(InsnTemp[UZA] + moduleOffset + 2);
                P3363();
                form1Insn(InsnTemp[UJ] + 2 + moduleOffset);
                padToLeft();
                if (curInsn.i != 0) {
                    if (not F3413())
                        error(211);
                    P0715(0, l4inl7z->code);
                };
                l4var213z = not l4var213z;
                P3363();
                padToLeft();
                continue;
            }; /* 4230 */
            if (curInsn.i >= 2*macro) {
                l4inl7z = reinterpret_cast<OneInsn*>(ptr(curInsn.i - (2*macro)));
                P0715(0, l4inl7z->code);
                l4inl7z->offset = moduleOffset;
            } else {
                curInsn.i = curInsn.i - macro;
                curVal.m = curInsn.m * (Bits(0, 1, 3) + BitRange(28,32));
                jumpType = curVal.i;
                curVal.m = (Bits(0, 1, 3) + BitRange(33,47)) * curInsn.m;
                l4inl7z = reinterpret_cast<OneInsn*>(ptr(curVal.i));
                formJump(l4inl7z->code);
                jumpType = InsnTemp[UJ];
                continue;
            }
          exit_iter:;
        } /* loop */

        insnList = NULL;
        while (l4inl6z != NULL) {
            if (l4inl6z->offset == 0) {
                jumpTarget = l4inl6z->code;
                return;
            } else
                l4inl6z = l4inl6z->next;
        }
        set146z = set146z - regsUsed;
    }

// Assembly:
movq 0x4f0a1(%rip), %rax     # 0x64ab8
testq %rax, %rax
je 0x169a9
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdi, %rbx
movabsq $0xffffffffffff, %rdx   # imm = 0xFFFFFFFFFFFF
movq 0x4f01e(%rip), %rcx     # 0x64a60
andq %rdx, %rcx
orq 0x18(%rax), %rcx
movq %rcx, 0x4f010(%rip)     # 0x64a60
movq 0x8(%rax), %rax
movq %rax, 0x6a0(%rdi)
movq $0x1f007, 0x40(%rdi)    # imm = 0x1F007
movq $0x1, (%rdi)
testq %rax, %rax
je 0x1699b
movabsq $-0x1000000000000, %r12 # imm = 0xFFFF000000000000
movq $0x0, 0x28(%rbx)
movq 0x6a0(%rbx), %rax
testq %rax, %rax
je 0x1645e
leaq 0x698(%rbx), %r14
leaq 0x690(%rbx), %r15
leaq 0x48(%rbx), %rbp
leaq 0x6e52(%rip), %r13      # 0x1c900
movq 0x10(%rax), %rsi
movq %r14, %rdi
callq 0x3bf2
movq 0x698(%rbx), %rax
movq 0x6a0(%rbx), %rcx
shlq $0x17, %rax
sarq $0x17, %rax
addq $-0x1000000, %rax       # imm = 0xFF000000
movq %rax, 0x18(%rbx)
movq 0x18(%rcx), %rsi
movq %r15, %rdi
callq 0x3bf2
movq 0x6a0(%rbx), %rax
movq 0x8(%rax), %rcx
decq %rcx
cmpq $0x3, %rcx
ja 0x15b75
movl $0x1, %eax
leaq 0x6dea(%rip), %rdx      # 0x1c8f0
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
cmpq $0x1, 0x4edd1(%rip)     # 0x648e8
je 0x15b75
movq (%rbx), %rcx
movq 0x48(%rbx,%rcx,8), %rdx
andq %r12, %rdx
movabsq $0xd00000f00000, %rsi   # imm = 0xD00000F00000
addq %rsi, %rdx
addq $-0xee0ff9, %rdx        # imm = 0xFF11F007
movq %rdx, 0x48(%rbx,%rcx,8)
incq (%rbx)
jmp 0x15b6e
cmpq $0x2, 0x4ed9e(%rip)     # 0x648e8
je 0x15b75
movq 0x53925(%rip), %rsi     # 0x69478
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3bf2
incq (%rbx)
movl $0x2, %eax
movq %rax, 0x4ed73(%rip)     # 0x648e8
movq 0x6a0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0x6a0(%rbx)
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
js 0x15baf
cmpq $0x17, %rcx
ja 0x163f5
movslq (%r13,%rcx,4), %rcx
addq %r13, %rcx
jmpq *%rcx
movq 0x5392e(%rip), %rsi     # 0x694d8
jmp 0x15ff8
testb $0x8, 0x2(%r14)
movq (%r15), %rsi
jne 0x15bfd
andl $0x7fff, %esi           # imm = 0x7FFF
leaq 0x4ee7a(%rip), %rdi     # 0x64a40
callq 0x3bf2
movq 0x4ee6e(%rip), %rdi     # 0x64a40
movq %rdi, %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq $0x7ff, %rax            # imm = 0x7FF
jg 0x15c3a
movq 0x698(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
movq 0x690(%rbx), %rsi
jmp 0x15c14
shlq $0x17, %rsi
sarq $0x17, %rsi
movq %rsi, %rdi
callq 0x6128
movq 0x698(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq %rax, %rsi
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3bf2
incq (%rbx)
jmp 0x163f5
leaq -0x7000(%rax), %rcx
cmpq $-0x6001, %rcx          # imm = 0x9FFF
ja 0x15c78
andl $0x7fffff, %edi         # imm = 0x7FFFFF
orq $0x800000, %rdi         # imm = 0x800000
callq 0x5e79
movq 0x698(%rbx), %rcx
shlq $0x17, %rcx
sarq $0x17, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x7000, %rsi          # imm = 0x9000
jmp 0x15c1f
movq %rax, %rdi
callq 0x6128
addq 0x53831(%rip), %rax     # 0x694b8
movq 0x698(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
movq (%rbx), %rcx
leaq (,%rcx,8), %rdi
addq %rbp, %rdi
movq %rax, %rsi
jmp 0x16030
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xdecff7, %rcx        # imm = 0xFF213009
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xdfafef, %rcx        # imm = 0xFF205011
jmp 0x163ec
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
orq %rdx, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xdf5ff6, %rcx        # imm = 0xFF20A00A
movq %rcx, 0x50(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x2(%rax), %rcx
movq %rcx, (%rbx)
movq 0x58(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $0xf000, %rcx           # imm = 0xF000
movq %rcx, 0x58(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xee6fc0, %rcx        # imm = 0xFF119040
jmp 0x163ec
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xdf6ff8, %rcx        # imm = 0xFF209008
jmp 0x163d2
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
movl $0xfff, %eax            # imm = 0xFFF
addq %rsi, %rax
testq %rsi, %rsi
cmovnsq %rsi, %rax
andq $-0x1000, %rax          # imm = 0xF000
subq %rax, %rsi
movq %r14, %rdi
callq 0x3bf2
movq 0x690(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
movl $0xfff, %ecx            # imm = 0xFFF
leaq (%rax,%rcx), %rsi
testq %rax, %rax
cmovnsq %rax, %rsi
sarq $0xc, %rsi
movq %r15, %rdi
callq 0x3bf2
movq %rbx, %rdi
callq 0x1940a
movb %al, 0x6a8(%rbx)
movq 0x30(%rbx), %rcx
movq %rcx, 0x38(%rbx)
movq 0x698(%rbx), %rcx
movq %rcx, 0x690(%rbx)
testb %al, %al
je 0x16429
movq %rbx, %rdi
callq 0x1940a
movb %al, 0x6a8(%rbx)
testb %al, %al
je 0x16430
movq 0x30(%rbx), %rax
movq $0x1000000, 0x10(%rax)  # imm = 0x1000000
movq 0x38(%rbx), %rdi
callq 0x3d9a
movq 0x30(%rbx), %rcx
movq %rax, 0x18(%rcx)
jmp 0x163f5
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xdfbfed, %rcx        # imm = 0xFF204013
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xee0ff9, %rcx        # imm = 0xFF11F007
movq %rcx, 0x50(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xdfbff7, %rcx        # imm = 0xFF204009
jmp 0x163ec
movq 0x690(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
leaq 0x52fcd(%rip), %rcx     # 0x68e80
movq (%rcx,%rax,8), %rsi
movl $0xa8000, %eax          # imm = 0xA8000
addq %rax, %rsi
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $0x98000, %rcx          # imm = 0x98000
jmp 0x16399
movq 0x690(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
leaq 0x52f87(%rip), %rax     # 0x68e80
movq (%rax,%r13,8), %rsi
movl $0xa0000, %eax          # imm = 0xA0000
addq %rax, %rsi
addq $0x22000, %r13          # imm = 0x22000
jmp 0x16022
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
movl $0xfff, %eax            # imm = 0xFFF
addq %rsi, %rax
testq %rsi, %rsi
cmovnsq %rsi, %rax
andq $-0x1000, %rax          # imm = 0xF000
subq %rax, %rsi
movq %r14, %rdi
callq 0x3bf2
movq 0x690(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
movl $0xfff, %ecx            # imm = 0xFFF
leaq (%rax,%rcx), %rsi
testq %rax, %rax
cmovnsq %rax, %rsi
sarq $0xc, %rsi
movq %r15, %rdi
callq 0x3bf2
movq 0x53576(%rip), %rsi     # 0x694e8
movq %rbx, %rdi
callq 0x19394
movq 0x698(%rbx), %rax
movq %rax, 0x690(%rbx)
movq %rbx, %rdi
callq 0x1940a
testb %al, %al
je 0x15fa9
movq 0x30(%rbx), %rdi
callq 0x3d9a
leaq 0x2000000(%rax), %rsi
jmp 0x15c1f
movl $0xce, %edi
jmp 0x16435
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xedfff2, %rcx        # imm = 0xFF12000E
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0x70000, %rcx         # imm = 0xFFF90000
jmp 0x163ec
movq 0x534e8(%rip), %rsi     # 0x694e0
movq %rbx, %rdi
callq 0x19394
jmp 0x163f5
movq 0x533b4(%rip), %rsi     # 0x693c0
movq 0x690(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
addq $0xf00000, %r13         # imm = 0xF00000
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3bf2
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
movq %r13, %rsi
leaq 0x68b3(%rip), %r13      # 0x1c900
movabsq $-0x1000000000000, %r12 # imm = 0xFFFF000000000000
jmp 0x163ac
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0x60000, %rcx         # imm = 0xFFFA0000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $0x8000, %rcx           # imm = 0x8000
movq %rcx, 0x50(%rbx,%rax,8)
jmp 0x16328
movq (%rbx), %rax
movq 0x40(%rbx,%rax,8), %rcx
testl $0x70ff000, %ecx        # imm = 0x70FF000
je 0x1643c
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $0x8000, %rcx           # imm = 0x8000
jmp 0x1641f
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq $0x3000000, %rsi        # imm = 0x3000000
jmp 0x15c1f
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
orq %rdx, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $0xf000, %rcx           # imm = 0xF000
jmp 0x163ec
testq %rax, %rax
je 0x16407
movq 0x10(%rax), %rsi
movq %r14, %rdi
callq 0x3bf2
movq (%r14), %rax
movl %eax, %ecx
andl $0x70ff000, %ecx        # imm = 0x70FF000
cmpl $0x8000, %ecx           # imm = 0x8000
jne 0x16407
shlq $0x17, %rax
sarq $0x17, %rax
subq 0x53258(%rip), %rax     # 0x693c0
addq 0x53229(%rip), %rax     # 0x69398
movq 0x6a0(%rbx), %rcx
movq %rax, 0x10(%rcx)
jmp 0x163f5
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xefd000, %rcx        # imm = 0xFF103000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x1(%rax), %rcx
movq %rcx, (%rbx)
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq $0xfa8000, %rsi         # imm = 0xFA8000
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
incq %rcx
movq %rcx, 0x50(%rbx,%rax,8)
jmp 0x1639e
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq $0xe25000, %rsi         # imm = 0xE25000
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xedfff2, %rcx        # imm = 0xFF12000E
jmp 0x16399
cmpq $0x0, 0x54823(%rip)     # 0x6aa40
jne 0x1623e
movq 0xe1ca(%rip), %rax      # 0x243f0
movq %rax, 0x4e813(%rip)     # 0x64a40
movl $0x8c0000, %edi         # imm = 0x8C0000
callq 0x5ba8
movq %rax, 0x54802(%rip)     # 0x6aa40
movq 0x547fb(%rip), %rsi     # 0x6aa40
movl $0xdc8000, %eax         # imm = 0xDC8000
jmp 0x15c1c
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0x60000, %rcx         # imm = 0xFFFA0000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xf8000, %rcx         # imm = 0xFFF08000
movq %rcx, 0x50(%rbx,%rax,8)
addq $0x2, (%rbx)
movq $0x807fff, 0x4e7a4(%rip) # imm = 0x807FFF
movl $0x807fff, %edi         # imm = 0x807FFF
callq 0x5e79
leaq 0xf03000(%rax), %rsi
movq 0x690(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
addq $0x809000, %r13         # imm = 0x809000
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3bf2
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
movq %r13, %rsi
leaq 0x6612(%rip), %r13      # 0x1c900
movabsq $-0x1000000000000, %r12 # imm = 0xFFFF000000000000
callq 0x3bf2
movq (%rbx), %rax
leaq 0x2(%rax), %rcx
movq %rcx, (%rbx)
movq 0x58(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $0xa000, %rcx           # imm = 0xA000
movq %rcx, 0x58(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0x100000, %rcx        # imm = 0xFFF00000
jmp 0x163ec
cmpq $0x0, 0x5489e(%rip)     # 0x6abe8
jne 0x1636b
movq 0xe245(%rip), %rax      # 0x24598
movq %rax, 0x4e6e6(%rip)     # 0x64a40
movl $0x8c0000, %edi         # imm = 0x8C0000
callq 0x5ba8
movq %rax, 0x5487d(%rip)     # 0x6abe8
movq 0x54876(%rip), %rsi     # 0x6abe8
movl $0xdc8000, %eax         # imm = 0xDC8000
addq %rax, %rsi
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0x460000, %rcx        # imm = 0xFFBA0000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3bf2
jmp 0x163f1
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
addq %rdx, %rcx
addq $-0xeee000, %rcx        # imm = 0xFF112000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r12, %rcx
addq %rdx, %rcx
addq $-0xdf5ff7, %rcx        # imm = 0xFF20A009
movq %rcx, 0x50(%rbx,%rax,8)
addq $0x2, (%rbx)
movq 0x6a0(%rbx), %rax
testq %rax, %rax
jne 0x15aae
jmp 0x1645e
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r12, %rcx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
orq %rdx, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
jmp 0x15c32
movb $0x0, 0x6a8(%rbx)
movl $0xcf, %edi
callq 0x589e
jmp 0x163f5
movabsq $0xffffffffffff, %rdx   # imm = 0xFFFFFFFFFFFF
addq $-0x70ff000, %rdx       # imm = 0xF8F01000
andq %rdx, %rcx
orq $0x1000, %rcx           # imm = 0x1000
movq %rcx, 0x40(%rbx,%rax,8)
jmp 0x163f5
movq (%rbx), %rax
leaq -0x1(%rax), %rcx
movq %rcx, (%rbx)
movq %rcx, 0x18(%rbx)
cmpq $0x2, %rax
jl 0x1654d
movq 0x52ffb(%rip), %rax     # 0x69478
movabsq $0xf803800000, %rdx     # imm = 0xF803800000
movq 0x48(%rbx,%rcx,8), %rsi
movq %rsi, 0x690(%rbx)
shlq $0x17, %rsi
cmpq %rdx, %rsi
je 0x164a5
sarq $0x17, %rsi
cmpq %rax, %rsi
jne 0x16517
leaq -0x1(%rcx), %rsi
movq %rsi, 0x10(%rbx)
movb $0x0, 0x6a8(%rbx)
movq %rcx, %rdi
cmpq $0x2, %rcx
jl 0x164fe
movq %rcx, %rdi
movq 0x40(%rbx,%rdi,8), %r8
andl $0xf8000, %r8d          # imm = 0xF8000
movq %r8, 0x698(%rbx)
orl $0x8000, %r8d           # imm = 0x8000
cmpl $0x98000, %r8d          # imm = 0x98000
jne 0x164f8
leaq -0x2(%rdi), %r8
movq %r8, 0x10(%rbx)
decq %rdi
cmpq $0x1, %rdi
jg 0x164c0
xorl %edi, %edi
jmp 0x164fb
decq %rdi
incq %rdi
movq %rdi, 0x10(%rbx)
cmpq %rcx, %rdi
jne 0x1652f
movq 0x10(%rbx), %rcx
movq 0x690(%rbx), %rsi
movq %rsi, 0x48(%rbx,%rcx,8)
movq 0x18(%rbx), %rsi
leaq -0x1(%rsi), %rcx
movq %rcx, 0x18(%rbx)
cmpq $0x1, %rsi
jg 0x16487
jmp 0x1654d
movq %rsi, 0x8(%rbx)
cmpq 0x10(%rbx), %rcx
jle 0x16507
movq 0x48(%rbx,%rsi,8), %rsi
movq %rsi, 0x48(%rbx,%rcx,8)
movq 0x8(%rbx), %rcx
leaq -0x1(%rcx), %rsi
jmp 0x1652f
movq $0x1, 0x18(%rbx)
movq (%rbx), %rax
testq %rax, %rax
jle 0x16932
leaq 0x690(%rbx), %r14
leaq 0x8(%rbx), %r13
movl $0x1, %ecx
movabsq $0xd00000f00000, %rdx   # imm = 0xD00000F00000
leaq 0x10f8000(%rdx), %rbp
leaq 0x1f8000(%rdx), %r15
addq $0x1ff000, %rdx         # imm = 0x1FF000
movq %rdx, 0x8(%rsp)
movabsq $0xffffffffffff, %rdx   # imm = 0xFFFFFFFFFFFF
addq $-0x1000, %rdx          # imm = 0xF000
movq %rdx, 0x10(%rsp)
movq %rbp, (%rsp)
movq 0x48(%rbx,%rcx,8), %rsi
movq %rsi, 0x690(%rbx)
movq %rsi, %rcx
andq %rbp, %rcx
movq %rcx, 0x698(%rbx)
movl %esi, %ecx
andl $0x1ff8000, %ecx        # imm = 0x1FF8000
cmpl $0xf00000, %ecx         # imm = 0xF00000
jne 0x166ec
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %r12
movq %r12, 0x8(%rbx)
cmpq %rcx, %rax
je 0x166ec
movq %r14, %rbp
movq 0x52dc5(%rip), %rdx     # 0x693c0
movq 0x52e8e(%rip), %rdi     # 0x69490
movq 0x52e6f(%rip), %r8      # 0x69478
movq 0x52ea8(%rip), %r9      # 0x694b8
movq 0x52ea9(%rip), %r10     # 0x694c0
movq 0x52eaa(%rip), %r11     # 0x694c8
movq 0x48(%rbx,%r12,8), %rcx
movq %rcx, %r14
andq %r15, %r14
movq %r14, 0x698(%rbx)
movl %ecx, %r14d
andl $0x10ff000, %r14d       # imm = 0x10FF000
cmpq %rdx, %r14
je 0x16686
cmpq %rdi, %r14
je 0x166ac
movq %r13, %r12
cmpq %r8, %r14
jne 0x1665f
movq (%r12), %r14
leaq 0x1(%r14), %r12
movq %r12, (%r13)
cmpq %r14, %rax
jne 0x1661e
jmp 0x166d9
movl %ecx, %r14d
andl $0x10f8000, %r14d       # imm = 0x10F8000
movq %r13, %r12
cmpq %r9, %r14
je 0x1664c
movq %r13, %r12
cmpq %r10, %r14
je 0x1664c
movq %r13, %r12
cmpq %r11, %r14
je 0x1664c
movq %rbx, %r12
jmp 0x1664c
andq 0x8(%rsp), %rcx
movq %rcx, 0x4e3ae(%rip)     # 0x64a40
movq 0x48(%rbx,%r12,8), %rax
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
andq %rcx, %rax
xorq $0xb000, %rax           # imm = 0xB000
jmp 0x166c8
andq 0x8(%rsp), %rcx
movq %rcx, 0x4e388(%rip)     # 0x64a40
movq 0x48(%rbx,%r12,8), %rax
andq 0x10(%rsp), %rax
orq $0x1000, %rax           # imm = 0x1000
movq %rax, 0x48(%rbx,%r12,8)
movq %rbp, %r14
movq (%rsp), %rbp
jmp 0x1691a
andq 0x8(%rsp), %rcx
movq %rcx, 0x4e35b(%rip)     # 0x64a40
movq %rbp, %r14
movq (%rsp), %rbp
shlq $0x17, %rsi
sarq $0x17, %rsi
cmpq 0x52dbd(%rip), %rsi     # 0x694b8
je 0x1691a
cmpq $0xffffff, %rsi         # imm = 0xFFFFFF
jg 0x1675d
movq %rsi, %rdi
callq 0x5941
movq 0x690(%rbx), %rax
andl $0xf8000, %eax          # imm = 0xF8000
movq %rax, 0x698(%rbx)
cmpq $0xc8000, %rax          # imm = 0xC8000
je 0x16738
cmpl $0x28000, %eax          # imm = 0x28000
jne 0x1691a
cmpb $0x0, 0x4e245(%rip)     # 0x64984
jne 0x1674d
movq 0x52d70(%rip), %rdi     # 0x694b8
callq 0x5941
movq $0x1, 0x4e210(%rip) # 0x64968
jmp 0x1691a
cmpq $0x3000000, %rsi        # imm = 0x3000000
jl 0x167a1
addq $-0x3000000, %rsi       # imm = 0xFD000000
movq %r14, %rdi
callq 0x3bf2
movq (%r14), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
cmpq $0x1000, %rsi           # imm = 0x1000
jl 0x167e0
movb $0x1, 0x6a8(%rbx)
addq $-0x1000, %rsi          # imm = 0xF000
movq %r14, %rdi
callq 0x3bf2
jmp 0x167e7
cmpq $0x2000000, %rsi        # imm = 0x2000000
jl 0x168b9
addq $-0x2000000, %rsi       # imm = 0xFE000000
movq %rsi, %rdi
callq 0x3d6b
movq %rax, 0x30(%rbx)
movq 0x10(%rax), %rsi
xorl %edi, %edi
callq 0x617f
movq 0x4e0c5(%rip), %rax     # 0x64898
movq 0x30(%rbx), %rcx
movq %rax, 0x18(%rcx)
jmp 0x1691a
movb $0x0, 0x6a8(%rbx)
movabsq $0x1ffffffffff, %rax    # imm = 0x1FFFFFFFFFF
testq %rax, (%r14)
jne 0x16811
movq 0x52cdb(%rip), %rax     # 0x694d8
movq 0x4e094(%rip), %rcx     # 0x64898
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
callq 0x5941
movq %rbx, %rdi
callq 0x19462
movq 0x52cc8(%rip), %rax     # 0x694e8
movq 0x4e071(%rip), %rcx     # 0x64898
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
callq 0x5941
cmpb $0x0, 0x4e149(%rip)     # 0x64984
jne 0x16849
movq 0x52c74(%rip), %rdi     # 0x694b8
callq 0x5941
movq $0x0, 0x4e114(%rip) # 0x64968
movabsq $0x1ffffffffff, %rax    # imm = 0x1FFFFFFFFFF
testq %rax, (%r14)
je 0x16888
movq %rbx, %rdi
callq 0x1940a
testb %al, %al
jne 0x16879
movl $0xd3, %edi
callq 0x589e
movq 0x30(%rbx), %rax
movq 0x10(%rax), %rsi
xorl %edi, %edi
callq 0x617f
xorb $0x1, 0x6a8(%rbx)
movq %rbx, %rdi
callq 0x19462
cmpb $0x0, 0x4e0e6(%rip)     # 0x64984
jne 0x168ac
movq 0x52c11(%rip), %rdi     # 0x694b8
callq 0x5941
movq $0x0, 0x4e0b1(%rip) # 0x64968
jmp 0x1691a
addq $-0x1000000, %rsi       # imm = 0xFF000000
movq %r14, %rdi
callq 0x3bf2
movq 0x690(%rbx), %rdi
movl %edi, %eax
andl $0xf8000, %eax          # imm = 0xF8000
movq %rax, 0x4df33(%rip)     # 0x64810
movq %rdi, %rax
movabsq $-0x2fffffff8001, %rcx  # imm = 0xFFFFD00000007FFF
andq %rcx, %rax
movq %rax, 0x4e14c(%rip)     # 0x64a40
andl $0x7fff, %edi           # imm = 0x7FFF
callq 0x3d6b
movq %rax, 0x30(%rbx)
leaq 0x10(%rax), %rdi
callq 0x5ac6
movq 0x52bd5(%rip), %rax     # 0x694e8
movq %rax, 0x4def6(%rip)     # 0x64810
movq (%rbx), %rax
movq 0x18(%rbx), %rdx
leaq 0x1(%rdx), %rcx
movq %rcx, 0x18(%rbx)
cmpq %rax, %rdx
jl 0x165af
movq $0x0, 0x4e17b(%rip) # 0x64ab8
movq 0x28(%rbx), %rax
testq %rax, %rax
movabsq $-0x1000000000000, %rdx # imm = 0xFFFF000000000000
je 0x16963
cmpq $0x0, 0x18(%rax)
je 0x16990
movq (%rax), %rax
movq %rax, 0x28(%rbx)
testq %rax, %rax
jne 0x16950
movq 0x4e0f6(%rip), %rax     # 0x64a60
andq %rax, %rdx
notq %rax
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
andq %rcx, %rax
andq 0x4e0e4(%rip), %rax     # 0x64a68
orq %rax, %rdx
movq %rdx, 0x4e0da(%rip)     # 0x64a68
jmp 0x1699b
movq 0x10(%rax), %rax
movq %rax, 0x4de7d(%rip)     # 0x64818
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq