// File: besm6[P]pascal-re/pascompl.cc
// Function: standProc::standProc()
standProc() { /* standProc */
        IdentRecPtr &l3idr12z = Statement::super.back()->l3idr12z;
        TypesPtr &l2typ13z = programme::super.back()->l2typ13z;
        bool &l3bool5z = Statement::super.back()->l3bool5z;
        int64_t ii;

        curVal.i = l3idr12z->procno();
        procNo = curVal.i;
        l4bool10z = (SY == LPAREN);
        l4var14z.i = moduleOffset;
        if (not l4bool10z and
            (BitRange(0,5) + BitRange(8,10) + Bits(12) + BitRange(16,28)).has(procNo))
            error(45); /* errNoOpenParenForStandProc */
        if ((BitRange(0,9) - Bits(6,7)).has(procNo)) {
            inSymbol();
            if (hashTravPtr == NULL || hashTravPtr->cl < VARID) {
                error(46); /* errNoVarForStandProc */
                if (hashTravPtr == NULL)
                    throw 8888;
            }
            parseLval();
            arg1Type = curExpr->typ;
            curVarKind = arg1Type->k;
        }
        if (procNo <= 6)
            jumpTarget = getHelperProc(29 + procNo); /* P/PF */
        switch (procNo) {
        case 0: case 1: case 2: case 3: { /* put, get, rewrite, reset */
            if (curVarKind != kindFile)
                error(47); /* errNoVarOfFileType */
            if (procNo == 3 and SY == COMMA) {
                (void) formOperator(ADDRTOR12);
                expression();
                if (not typeCheck(IntegerType, curExpr->typ))
                    error(14); /* errExprIsNotInteger */
                (void) formOperator(LOAD);
                formAndAlign(getHelperProc(97)); /*"P/RE"*/
            } else {
                (void) formOperator(FILEACCESS);
            }
        } break;
        case 4: case 5: { /* new, dispose */
            if (curVarKind != kindPtr)
                error(13); /* errVarIsNotPointer */
            heapCallsCnt = heapCallsCnt + 1;
              l4exp9z = curExpr;
              if (procNo == 5)
                  (void) formOperator(ADDRTOR9);
              l2typ13z = arg1Type->cast<PtrT>().pbase;
              ii = l2typ13z->size;
              if (charClass == EQOP) {
                  expression();
                  if (not typeCheck(IntegerType, curExpr->typ))
                      error(14); /* errExprIsNotInteger */
                  (void) formOperator(LOAD);
                  form1Insn(KATI+14);
              } else {
                  if (l2typ13z->k == kindRecord) {
                      l4typ1z = l2typ13z->cast<RecordT>().cases;
                      /*loop*/ while (SY == COMMA and l4typ1z != NULL) {
                          inSymbol();
                          parseLiteral(l4typ2z, curVal, true);
                          if (l4typ2z == NULL)
                              break; // exit loop
                          else {
                              inSymbol();
                              /*loop2*/ while (l4typ1z != NULL) {
                                  l4typ2z = l4typ1z;
                                  while (l4typ2z != NULL) {
                                      if (l4typ2z->cast<CasesT>().sel == curVal) {
                                          ii = l4typ1z->size;
                                          goto exit_loop2;
                                      }
                                      l4typ2z = l4typ2z->cast<CasesT>().sameAs;
                                  };
                                  l4typ1z = l4typ1z->cast<CasesT>().next;
                              } exit_loop2:;
                          }
                      }
                  }
                  form1Insn(KVTM+I14+getValueOrAllocSymtab(ii));
              }
              formAndAlign(jumpTarget);
              if (procNo == 4) {
                  curExpr = l4exp9z;
                  (void) formOperator(STORE);
              }
        } break;
        case 6: { /* halt */
            formAndAlign(jumpTarget);
            return;
        } break;
        case 7: { /* stop */
            form1Insn(KE74);
            return;
        } break;
        case 8: case 9: { /* setup, rollup */
            if (curVarKind != kindPtr)
                error(13); /* errVarIsNotPointer */
            if (procNo == 8) {
                form1Insn(KXTA+HEAPPTR);
                (void) formOperator(STORE);
            } else {
                (void) formOperator(LOAD);
                form1Insn(KATX+HEAPPTR);
            }
        } break;
        case 10: { /* write */
            writeProc();
        } break;
        case 11: { /* writeln */
L17753:     if (SY == LPAREN) {
                writeProc();
            } else {
                formAndAlign(getHelperProc(54)); /*"P/WOLN"*/
                return;
            }
        } break;
        case 12: { /* read */
            readProc();
        } break;
        case 13: { /* readln */
            if (SY == LPAREN) {
                readProc();
            } else {
                formAndAlign(getHelperProc(55)); /*"P/RILN"*/
                return;
            }
        } break;
        case 14: { /* exit */
            l4bool10z = (SY == LPAREN);
            if (l4bool10z)
                inSymbol();
            if (SY == IDENT) {
                if (not structBranch(false))
                    error(1); /* errCommaOrSemicolonNeeded */
                inSymbol();
            } else {
                formJump(int53z);
            }
            if (not l4bool10z)
                return;
        } break;
        case 15: { /* debug */
            if (optSflags.m.has(DebugPrint)) {
                procNo = 11;
                goto L17753;
            }
            while (SY != RPAREN)
                inSymbol();
        } break;
        case 16: { /* besm */
            expression();
            (void) formOperator(LITINSN);
            formAndAlign(curVal.i);
        } break;
        case 17: { /* mapia */
            l4typ1z = IntegerType;
            l4typ2z = AlfaType;
L20041:
            expression();
            if (not typeCheck(curExpr->typ, l4typ1z))
                error(errNeedOtherTypesOfOperands);
            checkSymAndRead(COMMA);
            (void) formOperator(LOAD);
            if (procNo == 17) {
                form3Insn(ASN64-33, KAUX+BITS15, KAEX+ASCII0);
            } else {
                form3Insn(KAPX+BITS15, ASN64+33, KAEX+ZERO);
            };
            verifyType(l4typ2z);
            (void) formOperator(STORE);
        } break;
        case 18: { /* mapai */
            l4typ1z = AlfaType;
            l4typ2z = IntegerType;
            goto L20041;
        } break;
        case 19: case 20: { /* pck, unpck */
            inSymbol();
            verifyType(CharType);
            checkSymAndRead(COMMA);
            (void) formOperator(ADDRTOR12);
            verifyType(AlfaType);
            if (procNo == 20) {
                (void) formOperator(LOAD);
            }
            formAndAlign(getHelperProc(procNo - 6));
            if (procNo == 19)
                (void) formOperator(STORE);
        } break;
        case 21: { /* pack */
            inSymbol();
            checkArrayArg();
            checkSymAndRead(COMMA);
            verifyType(NULL);
            l4exp6z = curExpr;
            doPackUnpack();
        } break;
        case 22: { /* unpack */
            inSymbol();
            verifyType(NULL);
            l4exp6z = curExpr;
            checkSymAndRead(COMMA);
            checkArrayArg();
            doPackUnpack();
        } break;
        case 23: case 24: case 25: case 26: case 27: case 28: { /* MARS procedures */
            l3bool5z = 24 < procNo;
            do {
                expression();
                if (curExpr->typ->size != 1)
                    error(5); /*errSimpleTypeReq*/
                (void) formOperator(LOAD);
                if (l3bool5z) {
                    checkSymAndRead(COMMA);
                    verifyType(NULL);
                    l4exp9z = curExpr;
                    if (SY == COLON) {
                        expression();
                        (void) formOperator(MKPUSH);
                    } else {
                        form2Insn(KVTM + I14 + l4exp9z->typ->size,
                                  KITS + 14);
                    }
                    curExpr = l4exp9z;
                    (void) formOperator(gen12);
                } else {
                    form2Insn(InsnTemp[XTS], InsnTemp[XTS]);
                }
                form1Insn(KWTC + I14 + 077751 + procNo);
                formAndAlign(getHelperProc(80)); /*"PAIB"*/
            } while (SY == COMMA);
        } break;
        }; /* 20257 */
        if ((BitRange(0,3) + BitRange(10,13) + Bits(5,21,22)).has(procNo))
            arithMode = 1;
        checkSymAndRead(RPAREN);
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1570, %rsp           # imm = 0x1570
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x1560(%rbp)
leaq 0xb5aaf(%rip), %rdi     # 0xd8ae0
callq 0x22a10
movq (%rax), %rax
addq $0x50, %rax
movq %rax, -0x10(%rbp)
leaq 0xb59e8(%rip), %rdi     # 0xd8a30
callq 0x1e890
movq (%rax), %rax
addq $0x58, %rax
movq %rax, -0x18(%rbp)
leaq 0xb5a81(%rip), %rdi     # 0xd8ae0
callq 0x22a10
movq (%rax), %rax
addq $0x20, %rax
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0x27580
movq (%rax), %rsi
leaq 0x5d06b(%rip), %rdi     # 0x800f0
callq 0x4ad0
leaq 0x5d05f(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq -0x1560(%rbp), %rdi
movq %rax, 0x68(%rdi)
cmpl $0x7, 0x5ce34(%rip)     # 0x7fedc
sete %al
andb $0x1, %al
movb %al, 0x48(%rdi)
movq 0x5ce91(%rip), %rsi     # 0x7ff48
addq $0x58, %rdi
callq 0x4ad0
movq -0x1560(%rbp), %rcx
xorl %eax, %eax
testb $0x1, 0x48(%rcx)
movb %al, -0x1551(%rbp)
jne 0x2316f
xorl %eax, %eax
movl %eax, %edi
movl $0x5, %esi
callq 0x4a60
movq %rax, -0x48(%rbp)
movl $0x8, %edi
movl $0xa, %esi
callq 0x4a60
movq %rax, -0x50(%rbp)
movq -0x50(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x1db20
movq %rax, -0x40(%rbp)
movl $0xc, %edi
callq 0x48e0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0x1db20
movq %rax, -0x38(%rbp)
movl $0x10, %edi
movl $0x1c, %esi
callq 0x4a60
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rsi
leaq -0x38(%rbp), %rdi
callq 0x1db20
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq %rcx, -0x30(%rbp)
movq 0x68(%rax), %rsi
leaq -0x30(%rbp), %rdi
callq 0x1e5f0
movb %al, -0x1551(%rbp)
movb -0x1551(%rbp), %al
testb $0x1, %al
jne 0x2317b
jmp 0x23185
movl $0x2d, %edi
callq 0x7b40
xorl %eax, %eax
movl %eax, %edi
movl $0x9, %esi
callq 0x4a60
movq %rax, -0x70(%rbp)
movl $0x6, %edi
movl $0x7, %esi
callq 0x4940
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rsi
leaq -0x70(%rbp), %rdi
callq 0x1e4e0
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq %rcx, -0x68(%rbp)
movq 0x68(%rax), %rsi
leaq -0x68(%rbp), %rdi
callq 0x1e5f0
testb $0x1, %al
jne 0x231db
jmp 0x2325d
leaq -0x1e8(%rbp), %rdi
callq 0x9790
cmpq $0x0, 0x5ce71(%rip)     # 0x80060
je 0x231fe
movq 0x5ce68(%rip), %rax     # 0x80060
cmpl $0x3, 0x20(%rax)
jge 0x23237
movl $0x2e, %edi
callq 0x7b40
cmpq $0x0, 0x5ce50(%rip)     # 0x80060
jne 0x23235
movl $0x4, %edi
callq 0x4130
movq %rax, %rdi
movl $0x22b8, (%rdi)         # imm = 0x22B8
movq 0x1bd54(%rip), %rsi     # 0x3ef80
xorl %eax, %eax
movl %eax, %edx
callq 0x44b0
jmp 0x23237
callq 0x14ae0
movq 0x5cf1d(%rip), %rax     # 0x80160
movq (%rax), %rax
movq %rax, 0x5ce7b(%rip)     # 0x800c8
movq 0x5ce74(%rip), %rax     # 0x800c8
movl 0x10(%rax), %eax
movl %eax, 0x5cd6b(%rip)     # 0x7ffc8
movq -0x1560(%rbp), %rax
cmpq $0x6, 0x68(%rax)
jg 0x23286
movq -0x1560(%rbp), %rax
movq 0x68(%rax), %rdi
addq $0x1d, %rdi
callq 0x80d0
movq %rax, 0x5cc42(%rip)     # 0x7fec8
movq -0x1560(%rbp), %rax
movq 0x68(%rax), %rax
movq %rax, -0x1568(%rbp)
subq $0x1c, %rax
ja 0x23ca4
movq -0x1568(%rbp), %rax
leaq 0xe76c(%rip), %rcx      # 0x31a1c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
cmpl $0x7, 0x5cd08(%rip)     # 0x7ffc8
je 0x232cc
movl $0x2f, %edi
callq 0x7b40
movq -0x1560(%rbp), %rax
cmpq $0x3, 0x68(%rax)
jne 0x23391
cmpl $0xe, 0x5cbf7(%rip)     # 0x7fedc
jne 0x23391
leaq -0x250(%rbp), %rdi
movl $0x8, %esi
callq 0x112d0
leaq -0x250(%rbp), %rdi
callq 0x21850
callq 0x14e90
movq 0x5cd94(%rip), %rsi     # 0x800a8
movq 0x5ce45(%rip), %rax     # 0x80160
movq (%rax), %rdx
leaq -0x298(%rbp), %rdi
callq 0xb280
leaq -0x298(%rbp), %rdi
callq 0x1e950
xorb $-0x1, %al
movb %al, -0x1569(%rbp)
leaq -0x298(%rbp), %rdi
callq 0x1e9c0
movb -0x1569(%rbp), %al
testb $0x1, %al
jne 0x23356
jmp 0x23360
movl $0xe, %edi
callq 0x7b40
leaq -0x300(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0x300(%rbp), %rdi
callq 0x21850
movl $0x61, %edi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
jmp 0x233ae
leaq -0x368(%rbp), %rdi
movl $0xd, %esi
callq 0x112d0
leaq -0x368(%rbp), %rdi
callq 0x21850
jmp 0x23ca4
cmpl $0x3, 0x5cc0e(%rip)     # 0x7ffc8
je 0x233c6
movl $0xd, %edi
callq 0x7b40
movq -0x1560(%rbp), %rax
movq 0x5cbb4(%rip), %rcx     # 0x7ff88
addq $0x1, %rcx
movq %rcx, 0x5cba9(%rip)     # 0x7ff88
movq 0x5cd7a(%rip), %rcx     # 0x80160
movq %rcx, 0x40(%rax)
cmpq $0x5, 0x68(%rax)
jne 0x2340e
leaq -0x3d0(%rbp), %rdi
movl $0x5, %esi
callq 0x112d0
leaq -0x3d0(%rbp), %rdi
callq 0x21850
movq 0x5ccb3(%rip), %rdi     # 0x800c8
callq 0x1eab0
movq 0x18(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpl $0x9, 0x5ca9e(%rip)     # 0x7fed8
jne 0x234c4
callq 0x14e90
movq 0x5cc5c(%rip), %rsi     # 0x800a8
movq 0x5cd0d(%rip), %rax     # 0x80160
movq (%rax), %rdx
leaq -0x418(%rbp), %rdi
callq 0xb280
leaq -0x418(%rbp), %rdi
callq 0x1e950
xorb $-0x1, %al
movb %al, -0x156a(%rbp)
leaq -0x418(%rbp), %rdi
callq 0x1e9c0
movb -0x156a(%rbp), %al
testb $0x1, %al
jne 0x2348e
jmp 0x23498
movl $0xe, %edi
callq 0x7b40
leaq -0x480(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0x480(%rbp), %rdi
callq 0x21850
movl $0x2000e, %edi          # imm = 0x2000E
callq 0x7c20
jmp 0x23642
movq -0x18(%rbp), %rax
movq (%rax), %rax
cmpl $0x6, 0x10(%rax)
jne 0x2362a
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0x1e840
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq 0x18(%rcx), %rcx
movq %rcx, (%rax)
xorl %eax, %eax
cmpl $0xe, 0x5c9e1(%rip)     # 0x7fedc
movb %al, -0x156b(%rbp)
jne 0x23517
movq -0x1560(%rbp), %rax
cmpq $0x0, (%rax)
setne %al
movb %al, -0x156b(%rbp)
movb -0x156b(%rbp), %al
testb $0x1, %al
jne 0x23526
jmp 0x23628
leaq -0x5f0(%rbp), %rdi
callq 0x9790
movq -0x1560(%rbp), %rdi
addq $0x8, %rdi
leaq 0x5cbac(%rip), %rsi     # 0x800f0
movl $0x1, %edx
callq 0xad20
movq -0x1560(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x23561
jmp 0x23628
leaq -0x760(%rbp), %rdi
callq 0x9790
movq -0x1560(%rbp), %rax
cmpq $0x0, (%rax)
je 0x2361f
movq -0x1560(%rbp), %rax
movq (%rax), %rcx
movq %rcx, 0x8(%rax)
movq -0x1560(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x235fa
movq -0x1560(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x21d20
movq %rax, %rdi
addq $0x18, %rdi
leaq 0x5cb38(%rip), %rsi     # 0x800f0
callq 0x22a50
testb $0x1, %al
jne 0x235c3
jmp 0x235d6
movq -0x1560(%rbp), %rax
movq (%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x23621
movq -0x1560(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x21d20
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq 0x30(%rcx), %rcx
movq %rcx, 0x8(%rax)
jmp 0x2358c
movq -0x1560(%rbp), %rax
movq (%rax), %rdi
callq 0x21d20
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq 0x28(%rcx), %rcx
movq %rcx, (%rax)
jmp 0x2356d
jmp 0x23621
jmp 0x23623
jmp 0x234f2
jmp 0x2362a
movq -0x28(%rbp), %rdi
callq 0x8870
movq %rax, %rdi
addq $0xea0000, %rdi         # imm = 0xEA0000
callq 0x7c20
movq 0x5c87f(%rip), %rdi     # 0x7fec8
callq 0x7f20
movq -0x1560(%rbp), %rax
cmpq $0x4, 0x68(%rax)
jne 0x2368b
movq -0x1560(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, 0x5caf2(%rip)     # 0x80160
leaq -0x7c8(%rbp), %rdi
movl $0x1, %esi
callq 0x112d0
leaq -0x7c8(%rbp), %rdi
callq 0x21850
jmp 0x23ca4
movq 0x5c831(%rip), %rdi     # 0x7fec8
callq 0x7f20
jmp 0x23d53
movl $0x3c000, %edi          # imm = 0x3C000
callq 0x7c20
jmp 0x23d53
cmpl $0x3, 0x5c911(%rip)     # 0x7ffc8
je 0x236c3
movl $0xd, %edi
callq 0x7b40
movq -0x1560(%rbp), %rax
cmpq $0x8, 0x68(%rax)
jne 0x236fa
movl $0x108017, %edi         # imm = 0x108017
callq 0x7c20
leaq -0x830(%rbp), %rdi
movl $0x1, %esi
callq 0x112d0
leaq -0x830(%rbp), %rdi
callq 0x21850
jmp 0x23721
leaq -0x898(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0x898(%rbp), %rdi
callq 0x21850
movl $0x100017, %edi         # imm = 0x100017
callq 0x7c20
jmp 0x23ca4
movq -0x1560(%rbp), %rdi
callq 0x28550
jmp 0x23ca4
jmp 0x23739
cmpl $0x7, 0x5c79c(%rip)     # 0x7fedc
jne 0x23750
movq -0x1560(%rbp), %rdi
callq 0x28550
jmp 0x23767
movl $0x36, %edi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
jmp 0x23d53
jmp 0x23ca4
movq -0x1560(%rbp), %rdi
callq 0x289e0
jmp 0x23ca4
cmpl $0x7, 0x5c758(%rip)     # 0x7fedc
jne 0x23794
movq -0x1560(%rbp), %rdi
callq 0x289e0
jmp 0x237ab
movl $0x37, %edi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
jmp 0x23d53
jmp 0x23ca4
movq -0x1560(%rbp), %rax
cmpl $0x7, 0x5c71e(%rip)     # 0x7fedc
sete %cl
andb $0x1, %cl
movb %cl, 0x48(%rax)
testb $0x1, 0x48(%rax)
je 0x237d9
leaq -0xa08(%rbp), %rdi
callq 0x9790
cmpl $0x0, 0x5c6fc(%rip)     # 0x7fedc
jne 0x23805
xorl %edi, %edi
callq 0x163f0
testb $0x1, %al
jne 0x237f7
movl $0x1, %edi
callq 0x7b40
leaq -0xb78(%rbp), %rdi
callq 0x9790
jmp 0x23811
leaq 0x5c6c4(%rip), %rdi     # 0x7fed0
callq 0x7e70
movq -0x1560(%rbp), %rax
testb $0x1, 0x48(%rax)
jne 0x23823
jmp 0x23d53
jmp 0x23ca4
leaq 0x5c901(%rip), %rdi     # 0x80130
movl $0x2e, %esi
callq 0x1e5f0
testb $0x1, %al
jne 0x2383f
jmp 0x23853
movq -0x1560(%rbp), %rax
movq $0xb, 0x68(%rax)
jmp 0x23739
jmp 0x23855
cmpl $0xc, 0x5c680(%rip)     # 0x7fedc
je 0x2386c
leaq -0xce8(%rbp), %rdi
callq 0x9790
jmp 0x23855
jmp 0x23ca4
callq 0x14e90
leaq -0xd50(%rbp), %rdi
movl $0x11, %esi
callq 0x112d0
leaq -0xd50(%rbp), %rdi
callq 0x21850
leaq 0x5c856(%rip), %rdi     # 0x800f0
callq 0x1dfb0
movq %rax, %rdi
callq 0x7f20
jmp 0x23ca4
movq -0x1560(%rbp), %rax
movq 0x5c7ee(%rip), %rcx     # 0x800a8
movq %rcx, (%rax)
movq 0x5c7fc(%rip), %rcx     # 0x800c0
movq %rcx, 0x8(%rax)
callq 0x14e90
movq -0x1560(%rbp), %rax
movq 0x5c885(%rip), %rcx     # 0x80160
movq (%rcx), %rsi
movq (%rax), %rdx
leaq -0xd98(%rbp), %rdi
callq 0xb280
leaq -0xd98(%rbp), %rdi
callq 0x1e950
xorb $-0x1, %al
movb %al, -0x156c(%rbp)
leaq -0xd98(%rbp), %rdi
callq 0x1e9c0
movb -0x156c(%rbp), %al
testb $0x1, %al
jne 0x23919
jmp 0x23923
movl $0x15, %edi
callq 0x7b40
movl $0xe, %edi
callq 0xb110
leaq -0xe00(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0xe00(%rbp), %rdi
callq 0x21850
movq -0x1560(%rbp), %rax
cmpq $0x11, 0x68(%rax)
jne 0x2396e
movl $0x1e01f, %edi          # imm = 0x1E01F
movl $0x111012, %esi         # imm = 0x111012
movl $0x10a007, %edx         # imm = 0x10A007
callq 0x7dd0
jmp 0x23982
movl $0x110012, %edi         # imm = 0x110012
movl $0x1e061, %esi          # imm = 0x1E061
movl $0x10a009, %edx         # imm = 0x10A009
callq 0x7dd0
movq -0x1560(%rbp), %rdi
movq 0x8(%rdi), %rsi
callq 0x28c20
leaq -0xe68(%rbp), %rdi
movl $0x1, %esi
callq 0x112d0
leaq -0xe68(%rbp), %rdi
callq 0x21850
jmp 0x23ca4
movq -0x1560(%rbp), %rax
movq 0x5c6fe(%rip), %rcx     # 0x800c0
movq %rcx, (%rax)
movq 0x5c6dc(%rip), %rcx     # 0x800a8
movq %rcx, 0x8(%rax)
jmp 0x238c8
leaq -0xfd8(%rbp), %rdi
callq 0x9790
movq -0x1560(%rbp), %rdi
movq 0x5c6c9(%rip), %rsi     # 0x800b8
callq 0x28c20
movl $0xe, %edi
callq 0xb110
leaq -0x1040(%rbp), %rdi
movl $0x8, %esi
callq 0x112d0
leaq -0x1040(%rbp), %rdi
callq 0x21850
movq -0x1560(%rbp), %rdi
movq 0x5c697(%rip), %rsi     # 0x800c0
callq 0x28c20
movq -0x1560(%rbp), %rax
cmpq $0x14, 0x68(%rax)
jne 0x23a59
leaq -0x10a8(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0x10a8(%rbp), %rdi
callq 0x21850
movq -0x1560(%rbp), %rax
movq 0x68(%rax), %rdi
subq $0x6, %rdi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
movq -0x1560(%rbp), %rax
cmpq $0x13, 0x68(%rax)
jne 0x23aa0
leaq -0x1110(%rbp), %rdi
movl $0x1, %esi
callq 0x112d0
leaq -0x1110(%rbp), %rdi
callq 0x21850
jmp 0x23ca4
leaq -0x1280(%rbp), %rdi
callq 0x9790
movq -0x1560(%rbp), %rdi
callq 0x28ce0
movl $0xe, %edi
callq 0xb110
movq -0x1560(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x28c20
movq -0x1560(%rbp), %rdi
movq 0x5c67b(%rip), %rax     # 0x80160
movq %rax, 0x28(%rdi)
callq 0x28de0
jmp 0x23ca4
leaq -0x13f0(%rbp), %rdi
callq 0x9790
movq -0x1560(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x28c20
movq -0x1560(%rbp), %rax
movq 0x5c643(%rip), %rcx     # 0x80160
movq %rcx, 0x28(%rax)
movl $0xe, %edi
callq 0xb110
movq -0x1560(%rbp), %rdi
callq 0x28ce0
movq -0x1560(%rbp), %rdi
callq 0x28de0
jmp 0x23ca4
movq -0x1560(%rbp), %rcx
movl $0x18, %eax
cmpq 0x68(%rcx), %rax
setl %cl
movq -0x20(%rbp), %rax
andb $0x1, %cl
movb %cl, (%rax)
callq 0x14e90
movq 0x5c5f0(%rip), %rax     # 0x80160
movq (%rax), %rax
cmpq $0x1, (%rax)
je 0x23b83
movl $0x5, %edi
callq 0x7b40
leaq -0x1458(%rbp), %rdi
movl $0x2, %esi
callq 0x112d0
leaq -0x1458(%rbp), %rdi
callq 0x21850
movq -0x20(%rbp), %rax
testb $0x1, (%rax)
je 0x23c59
movl $0xe, %edi
callq 0xb110
movq -0x1560(%rbp), %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0x28c20
movq -0x1560(%rbp), %rax
movq 0x5c58b(%rip), %rcx     # 0x80160
movq %rcx, 0x40(%rax)
cmpl $0x12, 0x5c2fc(%rip)    # 0x7fedc
jne 0x23c06
callq 0x14e90
leaq -0x14c0(%rbp), %rdi
movl $0xa, %esi
callq 0x112d0
leaq -0x14c0(%rbp), %rdi
callq 0x21850
jmp 0x23c28
movq -0x1560(%rbp), %rax
movq 0x40(%rax), %rax
movq (%rax), %rax
movq (%rax), %rdi
addq $0xea0000, %rdi         # imm = 0xEA0000
movl $0x2300e, %esi          # imm = 0x2300E
callq 0x7da0
movq -0x1560(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, 0x5c526(%rip)     # 0x80160
leaq -0x1528(%rbp), %rdi
movl $0xc, %esi
callq 0x112d0
leaq -0x1528(%rbp), %rdi
callq 0x21850
jmp 0x23c6c
movq 0x60de8(%rip), %rdi     # 0x84a48
movq 0x60de1(%rip), %rsi     # 0x84a48
callq 0x7da0
movq -0x1560(%rbp), %rax
movq 0x68(%rax), %rdi
addq $0xe9ffe9, %rdi         # imm = 0xE9FFE9
callq 0x7c20
movl $0x50, %edi
callq 0x80d0
movq %rax, %rdi
callq 0x7f20
cmpl $0xe, 0x5c240(%rip)     # 0x7fedc
je 0x23b64
jmp 0x23ca4
xorl %eax, %eax
movl %eax, %edi
movl $0x3, %esi
callq 0x4a60
movq %rax, -0x1540(%rbp)
movl $0xa, %edi
movl $0xd, %esi
callq 0x4a60
movq %rax, -0x1548(%rbp)
movq -0x1548(%rbp), %rsi
leaq -0x1540(%rbp), %rdi
callq 0x1db20
movq %rax, -0x1538(%rbp)
movl $0x5, %edi
movl $0x15, %esi
movl $0x16, %edx
callq 0x4990
movq %rax, -0x1550(%rbp)
movq -0x1550(%rbp), %rsi
leaq -0x1538(%rbp), %rdi
callq 0x1db20
movq %rax, %rcx
movq -0x1560(%rbp), %rax
movq %rcx, -0x1530(%rbp)
movq 0x68(%rax), %rsi
leaq -0x1530(%rbp), %rdi
callq 0x1e5f0
testb $0x1, %al
jne 0x23d3e
jmp 0x23d49
movq $0x1, 0x5c24f(%rip) # 0x7ff98
movl $0xc, %edi
callq 0xb110
addq $0x1570, %rsp           # imm = 0x1570
popq %rbp
retq
nopl (%rax)