// File: /workspace/github_cpp_makefile_star2_O3/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 0x4ed3d(%rip), %rax     # 0x64aa8
testq %rax, %rax
je 0x16cb9
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movabsq $0xffffffffffff, %rdx   # imm = 0xFFFFFFFFFFFF
movq 0x4ecba(%rip), %rcx     # 0x64a50
andq %rdx, %rcx
orq 0x18(%rax), %rcx
movq %rcx, 0x4ecac(%rip)     # 0x64a50
movq 0x8(%rax), %rax
movq %rax, 0x6a0(%rdi)
movq $0x1f007, 0x40(%rdi)    # imm = 0x1F007
movq $0x1, (%rdi)
testq %rax, %rax
je 0x16cab
movabsq $-0x1000000000000, %r14 # imm = 0xFFFF000000000000
movabsq $0xd00000f00000, %r13   # imm = 0xD00000F00000
movq $0x0, 0x28(%rbx)
leaq 0x698(%rbx), %r15
leaq 0x690(%rbx), %rcx
movq %rcx, 0x8(%rsp)
leaq 0x48(%rbx), %rbp
leaq -0x70ff000(%rdx), %rcx
movq %rcx, 0x10(%rsp)
leaq 0x6bb3(%rip), %r12      # 0x1c9c0
movq 0x10(%rax), %rsi
movq %r15, %rdi
callq 0x3c48
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 0x8(%rsp), %rdi
callq 0x3c48
movq 0x6a0(%rbx), %rax
movq 0x8(%rax), %rcx
decq %rcx
cmpq $0x3, %rcx
ja 0x15ec5
movl $0x1, %eax
movslq (%r12,%rcx,4), %rcx
addq %r12, %rcx
jmpq *%rcx
cmpq $0x1, 0x4ea67(%rip)     # 0x648d8
je 0x15ec5
movq (%rbx), %rcx
movq 0x48(%rbx,%rcx,8), %rdx
andq %r14, %rdx
addq %r13, %rdx
addq $-0xee0ff9, %rdx        # imm = 0xFF11F007
movq %rdx, 0x48(%rbx,%rcx,8)
incq (%rbx)
jmp 0x15ebe
cmpq $0x2, 0x4ea3e(%rip)     # 0x648d8
je 0x15ec5
movq 0x535c5(%rip), %rsi     # 0x69468
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3c48
incq (%rbx)
movl $0x2, %eax
movq %rax, 0x4ea13(%rip)     # 0x648d8
movq 0x6a0(%rbx), %rax
movq (%rax), %rax
movq %rax, 0x6a0(%rbx)
movq 0x18(%rbx), %rcx
testq %rcx, %rcx
js 0x15f05
cmpq $0x17, %rcx
ja 0x166b4
leaq 0x6ae0(%rip), %rdx      # 0x1c9d0
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
movq 0x535c8(%rip), %rsi     # 0x694c8
jmp 0x1631d
testb $0x8, 0x2(%r15)
movq 0x8(%rsp), %rax
movq (%rax), %rsi
jne 0x15f58
andl $0x7fff, %esi           # imm = 0x7FFF
leaq 0x4eb0f(%rip), %rdi     # 0x64a30
callq 0x3c48
movq 0x4eb03(%rip), %rdi     # 0x64a30
movq %rdi, %rax
shlq $0x17, %rax
sarq $0x17, %rax
cmpq $0x7ff, %rax            # imm = 0x7FF
jg 0x15f95
movq 0x698(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
movq 0x690(%rbx), %rsi
jmp 0x15f6f
shlq $0x17, %rsi
sarq $0x17, %rsi
movq %rsi, %rdi
callq 0x617e
movq 0x698(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq %rax, %rsi
movq (%rbx), %rax
leaq (,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3c48
incq (%rbx)
jmp 0x166ad
leaq -0x7000(%rax), %rcx
cmpq $-0x6001, %rcx          # imm = 0x9FFF
ja 0x15fd3
andl $0x7fffff, %edi         # imm = 0x7FFFFF
orq $0x800000, %rdi         # imm = 0x800000
callq 0x5ed0
movq 0x698(%rbx), %rcx
shlq $0x17, %rcx
sarq $0x17, %rcx
leaq (%rax,%rcx), %rsi
addq $-0x7000, %rsi          # imm = 0x9000
jmp 0x15f7a
movq %rax, %rdi
callq 0x617e
addq 0x534c6(%rip), %rax     # 0x694a8
movq 0x698(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
movq (%rbx), %rcx
leaq (,%rcx,8), %rdi
addq %rbp, %rdi
movq %rax, %rsi
jmp 0x16355
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xdecff7, %rcx        # imm = 0xFF213009
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xdfafef, %rcx        # imm = 0xFF205011
jmp 0x166a4
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
orq %r13, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %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 %r14, %rcx
addq %r13, %rcx
addq $0xf000, %rcx           # imm = 0xF000
movq %rcx, 0x58(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xee6fc0, %rcx        # imm = 0xFF119040
jmp 0x166a4
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xdf6ff8, %rcx        # imm = 0xFF209008
jmp 0x1668a
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
movl $0xfff, %r14d           # imm = 0xFFF
leaq (%rsi,%r14), %rax
testq %rsi, %rsi
cmovnsq %rsi, %rax
andq $-0x1000, %rax          # imm = 0xF000
subq %rax, %rsi
movq %r15, %rdi
callq 0x3c48
movq 0x690(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
leaq (%rax,%r14), %rsi
testq %rax, %rax
cmovnsq %rax, %rsi
sarq $0xc, %rsi
movq 0x8(%rsp), %rdi
callq 0x3c48
movq %rbx, %rdi
callq 0x198c2
movb %al, 0x6a8(%rbx)
movq 0x30(%rbx), %rcx
movq %rcx, 0x38(%rbx)
movq 0x698(%rbx), %rcx
movq %rcx, 0x690(%rbx)
testb %al, %al
je 0x166d7
movq %rbx, %rdi
callq 0x198c2
movb %al, 0x6a8(%rbx)
testb %al, %al
je 0x166de
movq 0x30(%rbx), %rax
movq $0x1000000, 0x10(%rax)  # imm = 0x1000000
movq 0x38(%rbx), %rdi
callq 0x3e11
movq 0x30(%rbx), %rcx
movq %rax, 0x18(%rcx)
jmp 0x166e8
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %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 %r14, %rcx
addq %r13, %rcx
addq $-0xee0ff9, %rcx        # imm = 0xFF11F007
movq %rcx, 0x50(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xdfbff7, %rcx        # imm = 0xFF204009
jmp 0x166a4
movq 0x690(%rbx), %rax
shlq $0x17, %rax
sarq $0x17, %rax
leaq 0x52c8b(%rip), %rcx     # 0x68e70
movq (%rcx,%rax,8), %rsi
movl $0xa8000, %eax          # imm = 0xA8000
addq %rax, %rsi
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $0x98000, %rcx          # imm = 0x98000
jmp 0x1665b
movq 0x690(%rbx), %r13
shlq $0x17, %r13
sarq $0x17, %r13
leaq 0x52c4f(%rip), %rax     # 0x68e70
movq (%rax,%r13,8), %rsi
movl $0xa0000, %eax          # imm = 0xA0000
addq %rax, %rsi
addq $0x22000, %r13          # imm = 0x22000
jmp 0x16347
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 %r15, %rdi
callq 0x3c48
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 0x8(%rsp), %rdi
callq 0x3c48
movq 0x5323c(%rip), %rsi     # 0x694d8
movq %rbx, %rdi
callq 0x19848
movq 0x698(%rbx), %rax
movq %rax, 0x690(%rbx)
movq %rbx, %rdi
callq 0x198c2
testb %al, %al
je 0x162d3
movq 0x30(%rbx), %rdi
callq 0x3e11
leaq 0x2000000(%rax), %rsi
jmp 0x15f7a
movl $0xce, %edi
callq 0x58ff
jmp 0x166ad
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xedfff2, %rcx        # imm = 0xFF12000E
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0x70000, %rcx         # imm = 0xFFF90000
jmp 0x166a4
movq 0x531b3(%rip), %rsi     # 0x694d0
movq %rbx, %rdi
callq 0x19848
jmp 0x166ad
movq 0x5307f(%rip), %rsi     # 0x693b0
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 0x3c48
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
movq %r13, %rsi
movabsq $0xd00000f00000, %r13   # imm = 0xD00000F00000
jmp 0x1666e
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %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 %r14, %rcx
addq %r13, %rcx
addq $0x8000, %rcx           # imm = 0x8000
movq %rcx, 0x50(%rbx,%rax,8)
jmp 0x165f7
movq (%rbx), %rax
movq 0x40(%rbx,%rax,8), %rcx
testl $0x70ff000, %ecx        # imm = 0x70FF000
je 0x166f4
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $0x8000, %rcx           # imm = 0x8000
jmp 0x166cd
movq 0x690(%rbx), %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
addq $0x3000000, %rsi        # imm = 0x3000000
jmp 0x15f7a
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
orq %r13, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $0xf000, %rcx           # imm = 0xF000
jmp 0x166a4
testq %rax, %rax
je 0x166bf
movq 0x10(%rax), %rsi
movq %r15, %rdi
callq 0x3c48
movq (%r15), %rcx
movl %ecx, %eax
andl $0x70ff000, %eax        # imm = 0x70FF000
cmpl $0x8000, %eax           # imm = 0x8000
jne 0x166bf
shlq $0x17, %rcx
sarq $0x17, %rcx
subq 0x52f4a(%rip), %rcx     # 0x693b0
addq 0x52f1b(%rip), %rcx     # 0x69388
movq 0x6a0(%rbx), %rax
movq %rcx, 0x10(%rax)
jmp 0x166b4
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %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 %r14, %rcx
addq %r13, %rcx
incq %rcx
movq %rcx, 0x50(%rbx,%rax,8)
jmp 0x16660
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 %r14, %rcx
addq %r13, %rcx
addq $-0xedfff2, %rcx        # imm = 0xFF12000E
jmp 0x1665b
movq 0x5452a(%rip), %rsi     # 0x6aa30
testq %rsi, %rsi
jne 0x1652d
movq 0xdece(%rip), %rax      # 0x243e0
movq %rax, 0x4e517(%rip)     # 0x64a30
movl $0x8c0000, %edi         # imm = 0x8C0000
callq 0x5c15
movq %rax, %rsi
movq %rax, 0x54503(%rip)     # 0x6aa30
addq $0xdc8000, %rsi         # imm = 0xDC8000
jmp 0x15f7a
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0x60000, %rcx         # imm = 0xFFFA0000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xf8000, %rcx         # imm = 0xFFF08000
movq %rcx, 0x50(%rbx,%rax,8)
addq $0x2, (%rbx)
movq $0x807fff, 0x4e4b4(%rip) # imm = 0x807FFF
movl $0x807fff, %edi         # imm = 0x807FFF
callq 0x5ed0
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 0x3c48
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
movq %r13, %rsi
movabsq $0xd00000f00000, %r13   # imm = 0xD00000F00000
callq 0x3c48
movq (%rbx), %rax
leaq 0x2(%rax), %rcx
movq %rcx, (%rbx)
movq 0x58(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $0xa000, %rcx           # imm = 0xA000
movq %rcx, 0x58(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0x100000, %rcx        # imm = 0xFFF00000
jmp 0x166a4
movq 0x545c0(%rip), %rsi     # 0x6abd8
testq %rsi, %rsi
jne 0x1663f
movq 0xdf64(%rip), %rax      # 0x24588
movq %rax, 0x4e405(%rip)     # 0x64a30
movl $0x8c0000, %edi         # imm = 0x8C0000
callq 0x5c15
movq %rax, %rsi
movq %rax, 0x54599(%rip)     # 0x6abd8
addq $0xdc8000, %rsi         # imm = 0xDC8000
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0x460000, %rcx        # imm = 0xFFBA0000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
leaq 0x8(,%rax,8), %rdi
addq %rbp, %rdi
callq 0x3c48
jmp 0x166a9
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xeee000, %rcx        # imm = 0xFF112000
movq %rcx, 0x48(%rbx,%rax,8)
movq (%rbx), %rax
movq 0x50(%rbx,%rax,8), %rcx
andq %r14, %rcx
addq %r13, %rcx
addq $-0xdf5ff7, %rcx        # imm = 0xFF20A009
movq %rcx, 0x50(%rbx,%rax,8)
addq $0x2, (%rbx)
movq 0x6a0(%rbx), %rax
testq %rax, %rax
jne 0x15e0d
jmp 0x16707
movq (%rbx), %rax
movq 0x48(%rbx,%rax,8), %rcx
andq %r14, %rcx
orq %r13, %rcx
movq %rcx, 0x48(%rbx,%rax,8)
jmp 0x15f8d
movb $0x0, 0x6a8(%rbx)
movl $0xcf, %edi
callq 0x58ff
movabsq $-0x1000000000000, %r14 # imm = 0xFFFF000000000000
jmp 0x166ad
andq 0x10(%rsp), %rcx
orq $0x1000, %rcx           # imm = 0x1000
movq %rcx, -0x8(%rbp,%rax,8)
jmp 0x166ad
movq (%rbx), %rax
leaq -0x1(%rax), %rdx
movq %rdx, (%rbx)
movq %rdx, 0x18(%rbx)
cmpq $0x1, %rax
jle 0x16c44
movq 0x52d42(%rip), %rax     # 0x69468
movabsq $0xf803800000, %rcx     # imm = 0xF803800000
movq 0x8(%rsp), %r15
movq 0x48(%rbx,%rdx,8), %rsi
movq %rsi, 0x690(%rbx)
movq %rsi, %rdi
shlq $0x17, %rdi
cmpq %rcx, %rdi
je 0x1675a
sarq $0x17, %rdi
cmpq %rax, %rdi
jne 0x167fe
leaq -0x1(%rdx), %r8
movq %r8, 0x10(%rbx)
movb $0x0, 0x6a8(%rbx)
movq %rdx, %rdi
cmpq $0x2, %rdx
jb 0x167aa
movq 0x40(%rbx,%rdi,8), %r9
andl $0xf8000, %r9d          # imm = 0xF8000
movq %r9, 0x698(%rbx)
orl $0x8000, %r9d           # imm = 0x8000
cmpl $0x98000, %r9d          # imm = 0x98000
jne 0x167b5
leaq -0x2(%rdi), %r9
movq %r9, 0x10(%rbx)
decq %rdi
cmpq $0x1, %rdi
jg 0x16772
xorl %edi, %edi
jmp 0x167b8
movq %rdx, 0x10(%rbx)
movl $0x1, %edi
jmp 0x167f5
decq %rdi
incq %rdi
movq %rdi, 0x10(%rbx)
cmpq %rdx, %rdi
jne 0x167c9
movq %rdx, %rdi
jmp 0x167f5
movq %r8, 0x8(%rbx)
jge 0x167f5
movq 0x48(%rbx,%r8,8), %rsi
movq %rsi, 0x48(%rbx,%rdx,8)
movq 0x8(%rbx), %rdx
movq 0x10(%rbx), %rdi
leaq -0x1(%rdx), %r8
movq %r8, 0x8(%rbx)
cmpq %rdi, %rdx
jg 0x167cf
movq 0x690(%rbx), %rsi
movq %rsi, 0x48(%rbx,%rdi,8)
movq 0x18(%rbx), %rdx
leaq -0x1(%rdx), %rsi
movq %rsi, 0x18(%rbx)
cmpq $0x1, %rdx
movq %rsi, %rdx
jg 0x16735
movq (%rbx), %rax
movq $0x1, 0x18(%rbx)
testq %rax, %rax
jle 0x16c4c
movl $0x1, %edx
movabsq $0xd00000f00000, %rcx   # imm = 0xD00000F00000
leaq 0x10f8000(%rcx), %rbp
leaq 0x1f8000(%rcx), %r13
addq $0x1ff000, %rcx         # imm = 0x1FF000
movq %rcx, 0x10(%rsp)
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
addq $-0x1000, %rcx          # imm = 0xF000
movq %rcx, 0x20(%rsp)
movq %rbp, 0x18(%rsp)
movq 0x48(%rbx,%rdx,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 0x1695f
leaq 0x1(%rdx), %r12
movq %r12, 0x8(%rbx)
movq 0x52c01(%rip), %rcx     # 0x694a8
cmpq %rdx, %rax
je 0x16966
movq 0x52af9(%rip), %rdi     # 0x693b0
movq 0x52bc2(%rip), %r8      # 0x69480
movq 0x52ba3(%rip), %r9      # 0x69468
movq 0x52be4(%rip), %r11     # 0x694b0
movq 0x52be5(%rip), %rbp     # 0x694b8
movq (%rbx), %r15
movq 0x8(%rbx), %rdx
movq 0x48(%rbx,%r12,8), %r14
movq %r14, %r10
andq %r13, %r10
movq %r10, 0x698(%rbx)
movl %r14d, %r10d
andl $0x10ff000, %r10d       # imm = 0x10FF000
cmpq %rdi, %r10
je 0x16a67
cmpq %r8, %r10
je 0x16a8d
cmpq %r9, %r10
je 0x1692c
movl %r14d, %r10d
andl $0x10f8000, %r10d       # imm = 0x10F8000
cmpq %rcx, %r10
je 0x1692c
cmpq %r11, %r10
je 0x1692c
cmpq %rbp, %r10
je 0x16929
movq %r15, %rdx
movq %rdx, %r12
leaq 0x1(%r12), %rdx
movq %rdx, 0x8(%rbx)
cmpq %r12, %rax
movq %rdx, %r12
jne 0x168da
andq 0x10(%rsp), %r14
movq %r14, 0x4e0e7(%rip)     # 0x64a30
movabsq $-0x1000000000000, %r14 # imm = 0xFFFF000000000000
movq 0x8(%rsp), %r15
movq 0x18(%rsp), %rbp
jmp 0x16966
movq 0x52b42(%rip), %rcx     # 0x694a8
shlq $0x17, %rsi
sarq $0x17, %rsi
cmpq %rcx, %rsi
je 0x16c2a
cmpq $0xffffff, %rsi         # imm = 0xFFFFFF
jg 0x169d3
movq %rsi, %rdi
callq 0x59a2
movq 0x690(%rbx), %rax
andl $0xf8000, %eax          # imm = 0xF8000
movq %rax, 0x698(%rbx)
cmpq $0xc8000, %rax          # imm = 0xC8000
je 0x169ae
cmpl $0x28000, %eax          # imm = 0x28000
jne 0x16c2a
cmpb $0x0, 0x4dfbf(%rip)     # 0x64974
jne 0x169c3
movq 0x52aea(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x1, 0x4df8a(%rip) # 0x64958
jmp 0x16c2a
cmpq $0x3000000, %rsi        # imm = 0x3000000
jb 0x16a28
addq $-0x3000000, %rsi       # imm = 0xFD000000
movq %r15, %rdi
callq 0x3c48
movq (%r15), %rax
movq %rax, %rsi
shlq $0x17, %rsi
sarq $0x17, %rsi
cmpq $0x1000, %rsi           # imm = 0x1000
jl 0x16ac7
movb $0x1, 0x6a8(%rbx)
addq $-0x1000, %rsi          # imm = 0xF000
movq %r15, %rdi
callq 0x3c48
movq 0x690(%rbx), %rax
jmp 0x16ace
cmpq $0x2000000, %rsi        # imm = 0x2000000
jb 0x16bc9
addq $-0x2000000, %rsi       # imm = 0xFE000000
movq %rsi, %rdi
callq 0x3de2
movq %rax, 0x30(%rbx)
movq 0x10(%rax), %rsi
xorl %edi, %edi
callq 0x61d5
movq 0x4de2e(%rip), %rax     # 0x64888
movq 0x30(%rbx), %rcx
movq %rax, 0x18(%rcx)
jmp 0x16c2a
andq 0x10(%rsp), %r14
movq %r14, 0x4dfbd(%rip)     # 0x64a30
movq 0x48(%rbx,%r12,8), %rax
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
andq %rcx, %rax
xorq $0xb000, %rax           # imm = 0xB000
jmp 0x16aa9
andq 0x10(%rsp), %r14
movq %r14, 0x4df97(%rip)     # 0x64a30
movq 0x48(%rbx,%r12,8), %rax
andq 0x20(%rsp), %rax
orq $0x1000, %rax           # imm = 0x1000
movq %rax, 0x48(%rbx,%r12,8)
movabsq $-0x1000000000000, %r14 # imm = 0xFFFF000000000000
movq 0x8(%rsp), %r15
movq 0x18(%rsp), %rbp
jmp 0x16c2a
movb $0x0, 0x6a8(%rbx)
movabsq $0x1ffffffffff, %rcx    # imm = 0x1FFFFFFFFFF
testq %rcx, %rax
jne 0x16af8
movq 0x529e4(%rip), %rax     # 0x694c8
movq 0x4dd9d(%rip), %rcx     # 0x64888
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
callq 0x59a2
cmpb $0x0, 0x6a8(%rbx)
movl $0x108008, %edi         # imm = 0x108008
je 0x16b0d
movq 0x528a3(%rip), %rdi     # 0x693b0
callq 0x59a2
movq 0x529bf(%rip), %rax     # 0x694d8
movq 0x4dd68(%rip), %rcx     # 0x64888
leaq (%rax,%rcx), %rdi
addq $0x2, %rdi
callq 0x59a2
cmpb $0x0, 0x4de40(%rip)     # 0x64974
jne 0x16b42
movq 0x5296b(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x4de0b(%rip) # 0x64958
movabsq $0x1ffffffffff, %rax    # imm = 0x1FFFFFFFFFF
testq %rax, (%r15)
je 0x16b81
movq %rbx, %rdi
callq 0x198c2
testb %al, %al
jne 0x16b72
movl $0xd3, %edi
callq 0x58ff
movq 0x30(%rbx), %rax
movq 0x10(%rax), %rsi
xorl %edi, %edi
callq 0x61d5
movb 0x6a8(%rbx), %al
movl %eax, %ecx
xorb $0x1, %cl
movb %cl, 0x6a8(%rbx)
movl $0x108008, %edi         # imm = 0x108008
testb %al, %al
jne 0x16ba2
movq 0x5280e(%rip), %rdi     # 0x693b0
callq 0x59a2
cmpb $0x0, 0x4ddc6(%rip)     # 0x64974
jne 0x16bbc
movq 0x528f1(%rip), %rdi     # 0x694a8
callq 0x59a2
movq $0x0, 0x4dd91(%rip) # 0x64958
jmp 0x16c2a
addq $-0x1000000, %rsi       # imm = 0xFF000000
movq %r15, %rdi
callq 0x3c48
movq 0x690(%rbx), %rdi
movl %edi, %eax
andl $0xf8000, %eax          # imm = 0xF8000
movq %rax, 0x4dc13(%rip)     # 0x64800
movq %rdi, %rax
movabsq $-0x2fffffff8001, %rcx  # imm = 0xFFFFD00000007FFF
andq %rcx, %rax
movq %rax, 0x4de2c(%rip)     # 0x64a30
andl $0x7fff, %edi           # imm = 0x7FFF
callq 0x3de2
movq %rax, 0x30(%rbx)
leaq 0x10(%rax), %rdi
callq 0x5b33
movq 0x528b5(%rip), %rax     # 0x694d8
movq %rax, 0x4dbd6(%rip)     # 0x64800
movq (%rbx), %rax
movq 0x18(%rbx), %rcx
leaq 0x1(%rcx), %rdx
movq %rdx, 0x18(%rbx)
cmpq %rax, %rcx
jl 0x1686b
jmp 0x16c4c
movq $0x1, 0x18(%rbx)
movq $0x0, 0x4de51(%rip) # 0x64aa8
movq 0x28(%rbx), %rax
testq %rax, %rax
movabsq $0xffffffffffff, %rcx   # imm = 0xFFFFFFFFFFFF
je 0x16c7d
cmpq $0x0, 0x18(%rax)
je 0x16ca0
movq (%rax), %rax
movq %rax, 0x28(%rbx)
testq %rax, %rax
jne 0x16c6a
movq 0x4ddcc(%rip), %rax     # 0x64a50
andq %rax, %r14
notq %rax
andq %rcx, %rax
andq 0x4ddc4(%rip), %rax     # 0x64a58
orq %rax, %r14
movq %r14, 0x4ddba(%rip)     # 0x64a58
jmp 0x16cab
movq 0x10(%rax), %rax
movq %rax, 0x4db5d(%rip)     # 0x64808
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq